Created
August 1, 2025 01:47
-
-
Save clintdoriot/6aea8d1ba56eb7beb6e604848dced9fb to your computer and use it in GitHub Desktop.
Staged changes for mystage 4.20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/dependencies/ff_commons/pubspec.yaml b/dependencies/ff_commons/pubspec.yaml | |
| index bbf658e..160bdc5 100644 | |
| --- a/dependencies/ff_commons/pubspec.yaml | |
| +++ b/dependencies/ff_commons/pubspec.yaml | |
| @@ -3,7 +3,7 @@ description: FlutterFlow Commons Package | |
| publish_to: 'none' | |
| -version: 0.4.19+1 | |
| +version: 0.4.20+1 | |
| environment: | |
| sdk: ">=3.0.0 <4.0.0" | |
| diff --git a/dependencies/ff_theme/lib/flutter_flow/flutter_flow_theme.dart b/dependencies/ff_theme/lib/flutter_flow/flutter_flow_theme.dart | |
| index 4cb7fc1..ea0d22c 100644 | |
| --- a/dependencies/ff_theme/lib/flutter_flow/flutter_flow_theme.dart | |
| +++ b/dependencies/ff_theme/lib/flutter_flow/flutter_flow_theme.dart | |
| @@ -26,6 +26,10 @@ abstract class FlutterFlowTheme { | |
| ? _prefs?.remove(kThemeModeKey) | |
| : _prefs?.setBool(kThemeModeKey, mode == ThemeMode.dark); | |
| + static const double minTextScaleFactor = 1.0; | |
| + static const double maxTextScaleFactor = 1.0; | |
| + static const double defaultTextScaleFactor = 1.0; | |
| + | |
| static FlutterFlowTheme of(BuildContext context) { | |
| return Theme.of(context).brightness == Brightness.dark | |
| ? DarkModeTheme() | |
| diff --git a/dependencies/ff_theme/pubspec.yaml b/dependencies/ff_theme/pubspec.yaml | |
| index b69c85d..205d98d 100644 | |
| --- a/dependencies/ff_theme/pubspec.yaml | |
| +++ b/dependencies/ff_theme/pubspec.yaml | |
| @@ -3,7 +3,7 @@ description: FlutterFlow Theme Package | |
| publish_to: 'none' | |
| -version: 0.4.19+1 | |
| +version: 0.4.20+1 | |
| environment: | |
| sdk: ">=3.0.0 <4.0.0" | |
| diff --git a/lib/components/app_bar_text_model.dart b/lib/components/app_bar_text_model.dart | |
| new file mode 100644 | |
| index 0000000..253183c | |
| --- /dev/null | |
| +++ b/lib/components/app_bar_text_model.dart | |
| @@ -0,0 +1,11 @@ | |
| +import '/flutter_flow/flutter_flow_util.dart'; | |
| +import 'app_bar_text_widget.dart' show AppBarTextWidget; | |
| +import 'package:flutter/material.dart'; | |
| + | |
| +class AppBarTextModel extends FlutterFlowModel<AppBarTextWidget> { | |
| + @override | |
| + void initState(BuildContext context) {} | |
| + | |
| + @override | |
| + void dispose() {} | |
| +} | |
| diff --git a/lib/components/app_bar_text_widget.dart b/lib/components/app_bar_text_widget.dart | |
| new file mode 100644 | |
| index 0000000..11ccb06 | |
| --- /dev/null | |
| +++ b/lib/components/app_bar_text_widget.dart | |
| @@ -0,0 +1,102 @@ | |
| +import '/flutter_flow/flutter_flow_util.dart'; | |
| +import 'package:ff_theme/flutter_flow/flutter_flow_theme.dart'; | |
| +import 'package:flutter/material.dart'; | |
| +import 'package:google_fonts/google_fonts.dart'; | |
| +import 'app_bar_text_model.dart'; | |
| +export 'app_bar_text_model.dart'; | |
| + | |
| +class AppBarTextWidget extends StatefulWidget { | |
| + const AppBarTextWidget({ | |
| + super.key, | |
| + this.text, | |
| + int? maxCharacters, | |
| + int? fontSize, | |
| + bool? isBold, | |
| + }) : this.maxCharacters = maxCharacters ?? 24, | |
| + this.fontSize = fontSize ?? 14, | |
| + this.isBold = isBold ?? false; | |
| + | |
| + final String? text; | |
| + final int maxCharacters; | |
| + final int fontSize; | |
| + final bool isBold; | |
| + | |
| + @override | |
| + State<AppBarTextWidget> createState() => _AppBarTextWidgetState(); | |
| +} | |
| + | |
| +class _AppBarTextWidgetState extends State<AppBarTextWidget> { | |
| + late AppBarTextModel _model; | |
| + | |
| + @override | |
| + void setState(VoidCallback callback) { | |
| + super.setState(callback); | |
| + _model.onUpdate(); | |
| + } | |
| + | |
| + @override | |
| + void initState() { | |
| + super.initState(); | |
| + _model = createModel(context, () => AppBarTextModel()); | |
| + | |
| + WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {})); | |
| + } | |
| + | |
| + @override | |
| + void dispose() { | |
| + _model.maybeDispose(); | |
| + | |
| + super.dispose(); | |
| + } | |
| + | |
| + @override | |
| + Widget build(BuildContext context) { | |
| + return Builder( | |
| + builder: (context) { | |
| + if (widget.isBold) { | |
| + return ClipRRect( | |
| + child: Container( | |
| + decoration: BoxDecoration(), | |
| + child: Text( | |
| + widget.text!.maybeHandleOverflow( | |
| + maxChars: widget.maxCharacters, | |
| + ), | |
| + maxLines: 1, | |
| + style: FlutterFlowTheme.of(context).bodyMedium.override( | |
| + font: GoogleFonts.poppins( | |
| + fontWeight: FontWeight.w800, | |
| + fontStyle: | |
| + FlutterFlowTheme.of(context).bodyMedium.fontStyle, | |
| + ), | |
| + fontSize: widget.fontSize.toDouble(), | |
| + letterSpacing: 0.0, | |
| + fontWeight: FontWeight.w800, | |
| + fontStyle: | |
| + FlutterFlowTheme.of(context).bodyMedium.fontStyle, | |
| + ), | |
| + ), | |
| + ), | |
| + ); | |
| + } else { | |
| + return Text( | |
| + 'test ${widget.text}'.maybeHandleOverflow( | |
| + maxChars: widget.maxCharacters, | |
| + ), | |
| + maxLines: 1, | |
| + style: FlutterFlowTheme.of(context).bodyMedium.override( | |
| + font: GoogleFonts.poppins( | |
| + fontWeight: FontWeight.w500, | |
| + fontStyle: | |
| + FlutterFlowTheme.of(context).bodyMedium.fontStyle, | |
| + ), | |
| + fontSize: widget.fontSize.toDouble(), | |
| + letterSpacing: 0.0, | |
| + fontWeight: FontWeight.w500, | |
| + fontStyle: FlutterFlowTheme.of(context).bodyMedium.fontStyle, | |
| + ), | |
| + ); | |
| + } | |
| + }, | |
| + ); | |
| + } | |
| +} | |
| diff --git a/lib/custom_code/widgets/tile_image_widget.dart b/lib/custom_code/widgets/tile_image_widget.dart | |
| index d8f08d4..a3d7da5 100644 | |
| --- a/lib/custom_code/widgets/tile_image_widget.dart | |
| +++ b/lib/custom_code/widgets/tile_image_widget.dart | |
| @@ -26,13 +26,13 @@ import 'dart:math' as math; | |
| class TileImageWidget extends StatefulWidget { | |
| const TileImageWidget({ | |
| super.key, | |
| - this.width, // FlutterFlow-required, but overridden | |
| - this.height, // FlutterFlow-required, but overridden | |
| + this.width, | |
| + this.height, | |
| this.imageUrl, | |
| }); | |
| - final double? width; // FlutterFlow-provided width (overridden) | |
| - final double? height; // FlutterFlow-provided height (overridden) | |
| + final double? width; | |
| + final double? height; | |
| final String? imageUrl; | |
| @override | |
| @@ -40,7 +40,7 @@ class TileImageWidget extends StatefulWidget { | |
| } | |
| class _TileImageWidgetState extends State<TileImageWidget> { | |
| - double? _imageAspectRatio; // Dynamically calculated aspect ratio | |
| + double? _imageAspectRatio; | |
| @override | |
| void initState() { | |
| @@ -55,11 +55,13 @@ class _TileImageWidgetState extends State<TileImageWidget> { | |
| .resolve(ImageConfiguration()) | |
| .addListener( | |
| ImageStreamListener((ImageInfo info, bool _) { | |
| - final imageWidth = info.image.width.toDouble(); | |
| - final imageHeight = info.image.height.toDouble(); | |
| - setState(() { | |
| - _imageAspectRatio = imageWidth / imageHeight; | |
| - }); | |
| + if (mounted) { | |
| + final imageWidth = info.image.width.toDouble(); | |
| + final imageHeight = info.image.height.toDouble(); | |
| + setState(() { | |
| + _imageAspectRatio = imageWidth / imageHeight; | |
| + }); | |
| + } | |
| }), | |
| ); | |
| } | |
| @@ -67,171 +69,146 @@ class _TileImageWidgetState extends State<TileImageWidget> { | |
| @override | |
| Widget build(BuildContext context) { | |
| - // Get the parent container width | |
| - double containerWidth = MediaQuery.of(context).size.width; | |
| + if (widget.imageUrl == null || widget.imageUrl!.isEmpty) { | |
| + return Center(child: Text("No image provided")); | |
| + } | |
| - // Set container height as 16:9 ratio of the parent container width | |
| - double containerHeight = containerWidth * 9 / 16; | |
| + return LayoutBuilder( | |
| + builder: (context, constraints) { | |
| + double containerWidth = constraints.maxWidth; | |
| + // double containerHeight = containerWidth * 9 / 16; | |
| + double containerHeight = constraints.maxHeight; | |
| - // Fallback to square aspect ratio if the image aspect ratio is not yet loaded | |
| - double imageAspectRatio = _imageAspectRatio ?? 1.0; | |
| + if (_imageAspectRatio == null) { | |
| + return SizedBox( | |
| + width: containerWidth, | |
| + height: containerHeight, | |
| + child: Center(child: CircularProgressIndicator()), | |
| + ); | |
| + } | |
| - // Calculate center image dimensions (fills height, maintains aspect ratio) | |
| - double centerImageHeight = containerHeight; | |
| - double centerImageWidth = centerImageHeight * imageAspectRatio; | |
| + double imageAspectRatio = _imageAspectRatio!; | |
| + double centerImageHeight = containerHeight; | |
| + double centerImageWidth = centerImageHeight * imageAspectRatio; | |
| - // Calculate positions for left and right mirrored images | |
| - double sliverWidth = (containerWidth - centerImageWidth) / 2 + 1; | |
| + // Determine if the "wings" are needed | |
| + if (centerImageWidth < containerWidth) { | |
| + // CASE 1: Image is taller than the container, so build the wings. | |
| + double centerImageLeft = (containerWidth - centerImageWidth) / 2; | |
| - // Determine gradient colors based on the current theme | |
| - bool isDarkMode = Theme.of(context).brightness == Brightness.dark; | |
| - Color gradientStartColor = isDarkMode | |
| - ? Colors.black.withOpacity(0.4) | |
| - : Colors.white.withOpacity(0.4); | |
| - Color gradientEndColor = isDarkMode | |
| - ? Colors.black.withOpacity(0.90) | |
| - : Colors.white.withOpacity(0.90); | |
| -/* | |
| - Color bottomGradientStart = isDarkMode | |
| - ? Colors.black.withOpacity(0.0) | |
| - : Colors.white.withOpacity(0.0); | |
| - Color bottomGradientEnd = isDarkMode | |
| - ? Colors.black.withOpacity(0.95) | |
| - : Colors.white.withOpacity(0.95); | |
| -*/ | |
| - return SizedBox( | |
| - width: containerWidth, | |
| - height: containerHeight, | |
| - child: widget.imageUrl == null || widget.imageUrl!.isEmpty | |
| - ? Center(child: Text("No image provided")) | |
| - : _imageAspectRatio == null | |
| - ? Center( | |
| - child: CircularProgressIndicator(), | |
| - ) // Show a loader while dimensions load | |
| - : Stack( | |
| - children: [ | |
| - // Left mirrored image with blur and overlay | |
| - Positioned( | |
| - left: 0, | |
| - top: 0, | |
| - width: sliverWidth, | |
| - height: containerHeight, | |
| - child: ClipRect( | |
| - child: Stack( | |
| - fit: StackFit.expand, | |
| - children: [ | |
| - Transform( | |
| - alignment: Alignment.center, | |
| - transform: Matrix4.rotationY(math.pi), | |
| - child: Image.network( | |
| - widget.imageUrl!, | |
| - fit: BoxFit.cover, | |
| - alignment: Alignment.centerLeft, | |
| - ), | |
| - ), | |
| - BackdropFilter( | |
| - filter: | |
| - ImageFilter.blur(sigmaX: 0.5, sigmaY: 0.5), | |
| - child: Container( | |
| - color: Colors.transparent, | |
| - ), | |
| - ), | |
| - Opacity( | |
| - opacity: 1.0, | |
| - child: Container( | |
| - decoration: BoxDecoration( | |
| - gradient: LinearGradient( | |
| - colors: [ | |
| - gradientStartColor, | |
| - gradientEndColor, | |
| - ], | |
| - begin: Alignment.centerRight, | |
| - end: Alignment.centerLeft, | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - ], | |
| - ), | |
| - ), | |
| - ), | |
| - // Center image (no blur) | |
| - Positioned( | |
| - left: sliverWidth, | |
| - top: 0, | |
| - width: centerImageWidth, | |
| - height: centerImageHeight, | |
| - child: Image.network( | |
| - widget.imageUrl!, | |
| - fit: BoxFit.contain, | |
| - ), | |
| - ), | |
| - // Right mirrored image with blur and overlay | |
| - Positioned( | |
| - left: sliverWidth + centerImageWidth, | |
| - top: 0, | |
| - width: sliverWidth, | |
| - height: containerHeight, | |
| - child: ClipRect( | |
| - child: Stack( | |
| - fit: StackFit.expand, | |
| - children: [ | |
| - Transform( | |
| - alignment: Alignment.center, | |
| - transform: Matrix4.rotationY(math.pi), | |
| - child: Image.network( | |
| - widget.imageUrl!, | |
| - fit: BoxFit.cover, | |
| - alignment: Alignment.centerRight, | |
| - ), | |
| - ), | |
| - BackdropFilter( | |
| - filter: | |
| - ImageFilter.blur(sigmaX: 0.5, sigmaY: 0.5), | |
| - child: Container( | |
| - color: Colors.transparent, | |
| - ), | |
| - ), | |
| - Opacity( | |
| - opacity: 1.0, | |
| - child: Container( | |
| - decoration: BoxDecoration( | |
| - gradient: LinearGradient( | |
| - colors: [ | |
| - gradientEndColor, | |
| - gradientStartColor, | |
| - ], | |
| - begin: Alignment.centerRight, | |
| - end: Alignment.centerLeft, | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - ], | |
| - ), | |
| - ), | |
| - ), | |
| - // Bottom overlay gradient | |
| - /*Positioned( | |
| - left: 0, | |
| - bottom: 0, | |
| - width: containerWidth, | |
| - height: 0, // Gradient height | |
| - child: Container( | |
| - decoration: BoxDecoration( | |
| - gradient: LinearGradient( | |
| - colors: [ | |
| - bottomGradientStart, | |
| - bottomGradientEnd, | |
| - ], | |
| - begin: Alignment.topCenter, | |
| - end: Alignment.bottomCenter, | |
| + bool isDarkMode = Theme.of(context).brightness == Brightness.dark; | |
| + Color gradientStartColor = isDarkMode | |
| + ? Colors.black.withOpacity(0.4) | |
| + : Colors.white.withOpacity(0.4); | |
| + Color gradientEndColor = isDarkMode | |
| + ? Colors.black.withOpacity(0.90) | |
| + : Colors.white.withOpacity(0.90); | |
| + | |
| + return SizedBox( | |
| + width: containerWidth, | |
| + height: containerHeight, | |
| + child: Stack( | |
| + children: [ | |
| + // Left mirrored image with blur and overlay | |
| + Positioned( | |
| + left: 0, | |
| + top: 0, | |
| + width: centerImageLeft + 1, | |
| + height: containerHeight, | |
| + child: ClipRect( | |
| + child: Stack( | |
| + fit: StackFit.expand, | |
| + children: [ | |
| + Transform( | |
| + alignment: Alignment.center, | |
| + transform: Matrix4.rotationY(math.pi), | |
| + child: Image.network( | |
| + widget.imageUrl!, | |
| + fit: BoxFit.cover, | |
| + alignment: Alignment.centerLeft, | |
| ), | |
| ), | |
| - ), | |
| - ),*/ | |
| - ], | |
| + BackdropFilter( | |
| + filter: ImageFilter.blur(sigmaX: 0.5, sigmaY: 0.5), | |
| + child: Container(color: Colors.transparent), | |
| + ), | |
| + Container( | |
| + decoration: BoxDecoration( | |
| + gradient: LinearGradient( | |
| + colors: [gradientStartColor, gradientEndColor], | |
| + begin: Alignment.centerRight, | |
| + end: Alignment.centerLeft, | |
| + ), | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| ), | |
| + // Center image (no blur) | |
| + Positioned( | |
| + left: centerImageLeft, | |
| + top: 0, | |
| + width: centerImageWidth, | |
| + height: centerImageHeight, | |
| + child: Image.network( | |
| + widget.imageUrl!, | |
| + fit: BoxFit.contain, | |
| + ), | |
| + ), | |
| + // Right mirrored image with blur and overlay | |
| + Positioned( | |
| + right: 0, | |
| + top: 0, | |
| + width: centerImageLeft + 1, | |
| + height: containerHeight, | |
| + child: ClipRect( | |
| + child: Stack( | |
| + fit: StackFit.expand, | |
| + children: [ | |
| + Transform( | |
| + alignment: Alignment.center, | |
| + transform: Matrix4.rotationY(math.pi), | |
| + child: Image.network( | |
| + widget.imageUrl!, | |
| + fit: BoxFit.cover, | |
| + alignment: Alignment.centerRight, | |
| + ), | |
| + ), | |
| + BackdropFilter( | |
| + filter: ImageFilter.blur(sigmaX: 0.5, sigmaY: 0.5), | |
| + child: Container(color: Colors.transparent), | |
| + ), | |
| + Container( | |
| + decoration: BoxDecoration( | |
| + gradient: LinearGradient( | |
| + colors: [gradientEndColor, gradientStartColor], | |
| + begin: Alignment.centerRight, | |
| + end: Alignment.centerLeft, | |
| + ), | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ); | |
| + } else { | |
| + // CASE 2: Image is wider than the container, so just fill the space. | |
| + return SizedBox( | |
| + width: containerWidth, | |
| + height: containerHeight, | |
| + child: Image.network( | |
| + widget.imageUrl!, | |
| + fit: BoxFit.cover, // Fills, centers, and crops the image | |
| + width: containerWidth, | |
| + height: containerHeight, | |
| + ), | |
| + ); | |
| + } | |
| + }, | |
| ); | |
| } | |
| } | |
| diff --git a/lib/events/event_details/event_details_model.dart b/lib/events/event_details/event_details_model.dart | |
| index 968c68a..c57b1dd 100644 | |
| --- a/lib/events/event_details/event_details_model.dart | |
| +++ b/lib/events/event_details/event_details_model.dart | |
| @@ -1,5 +1,6 @@ | |
| import '/events/event_interest_widget_details/event_interest_widget_details_widget.dart'; | |
| import '/flutter_flow/flutter_flow_util.dart'; | |
| +import '/social_media/profiles/profile_picture/profile_picture_widget.dart'; | |
| import "package:mystage_base_lib_p8jvwd/backend/backend.dart" | |
| as mystage_base_lib_p8jvwd_backend; | |
| import '/index.dart'; | |
| @@ -27,17 +28,29 @@ class EventDetailsModel extends FlutterFlowModel<EventDetailsWidget> { | |
| mystage_base_lib_p8jvwd_backend.EvtArtistsRecord? evtArtistDoc; | |
| // Stores action output result for [Backend Call - Read Document] action in EventDetails widget. | |
| mystage_base_lib_p8jvwd_backend.EvtVenuesRecord? evtVenueDoc; | |
| + // State field(s) for PageView widget. | |
| + PageController? pageViewController; | |
| + | |
| + int get pageViewCurrentIndex => pageViewController != null && | |
| + pageViewController!.hasClients && | |
| + pageViewController!.page != null | |
| + ? pageViewController!.page!.round() | |
| + : 0; | |
| // Model for eventInterestWidgetDetails component. | |
| late EventInterestWidgetDetailsModel eventInterestWidgetDetailsModel; | |
| + // Model for profilePicture component. | |
| + late ProfilePictureModel profilePictureModel; | |
| @override | |
| void initState(BuildContext context) { | |
| eventInterestWidgetDetailsModel = | |
| createModel(context, () => EventInterestWidgetDetailsModel()); | |
| + profilePictureModel = createModel(context, () => ProfilePictureModel()); | |
| } | |
| @override | |
| void dispose() { | |
| eventInterestWidgetDetailsModel.dispose(); | |
| + profilePictureModel.dispose(); | |
| } | |
| } | |
| diff --git a/lib/events/event_details/event_details_widget.dart b/lib/events/event_details/event_details_widget.dart | |
| index 1829a9c..bfd7508 100644 | |
| --- a/lib/events/event_details/event_details_widget.dart | |
| +++ b/lib/events/event_details/event_details_widget.dart | |
| @@ -3,10 +3,14 @@ import '/common_components/pillbox_standard/pillbox_standard_widget.dart'; | |
| import '/events/event_interest_widget_details/event_interest_widget_details_widget.dart'; | |
| import '/flutter_flow/flutter_flow_icon_button.dart'; | |
| import '/flutter_flow/flutter_flow_util.dart'; | |
| +import '/social_media/profiles/profile_picture/profile_picture_widget.dart'; | |
| import "package:mystage_base_lib_p8jvwd/backend/backend.dart" | |
| as mystage_base_lib_p8jvwd_backend; | |
| +import '/custom_code/widgets/index.dart' as custom_widgets; | |
| import '/flutter_flow/custom_functions.dart' as functions; | |
| import '/index.dart'; | |
| +import 'package:smooth_page_indicator/smooth_page_indicator.dart' | |
| + as smooth_page_indicator; | |
| import 'package:cached_network_image/cached_network_image.dart'; | |
| import 'package:ff_theme/flutter_flow/flutter_flow_theme.dart'; | |
| import 'package:flutter/material.dart'; | |
| @@ -127,78 +131,61 @@ class _EventDetailsWidgetState extends State<EventDetailsWidget> { | |
| backgroundColor: FlutterFlowTheme.of(context).primaryBackground, | |
| iconTheme: IconThemeData(color: Color(0xFFA23E3E)), | |
| automaticallyImplyLeading: false, | |
| - leading: InkWell( | |
| - splashColor: Colors.transparent, | |
| - focusColor: Colors.transparent, | |
| - hoverColor: Colors.transparent, | |
| - highlightColor: Colors.transparent, | |
| - onTap: () async { | |
| - context.pop(); | |
| - }, | |
| - child: Icon( | |
| - Icons.arrow_back_ios, | |
| - color: FlutterFlowTheme.of(context).primaryText, | |
| - size: 25.0, | |
| + leading: Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB(0.0, 8.0, 0.0, 0.0), | |
| + child: InkWell( | |
| + splashColor: Colors.transparent, | |
| + focusColor: Colors.transparent, | |
| + hoverColor: Colors.transparent, | |
| + highlightColor: Colors.transparent, | |
| + onTap: () async { | |
| + context.pop(); | |
| + }, | |
| + child: Icon( | |
| + Icons.arrow_back_ios, | |
| + color: FlutterFlowTheme.of(context).primaryText, | |
| + size: 25.0, | |
| + ), | |
| ), | |
| ), | |
| - title: Row( | |
| - mainAxisSize: MainAxisSize.max, | |
| - mainAxisAlignment: MainAxisAlignment.spaceBetween, | |
| - children: [ | |
| - Row( | |
| - mainAxisSize: MainAxisSize.max, | |
| - children: [ | |
| - Expanded( | |
| - child: Text( | |
| - eventDetailsEvtPerformancesRecord.name != '' | |
| - ? eventDetailsEvtPerformancesRecord.name | |
| - : '${_model.evtArtistDoc?.name} @ ${_model.evtVenueDoc?.name}' | |
| - .maybeHandleOverflow( | |
| - maxChars: 1, | |
| - ), | |
| - maxLines: 1, | |
| - style: FlutterFlowTheme.of(context).titleSmall.override( | |
| - font: GoogleFonts.poppins( | |
| - fontWeight: FlutterFlowTheme.of(context) | |
| - .titleSmall | |
| - .fontWeight, | |
| - fontStyle: FlutterFlowTheme.of(context) | |
| - .titleSmall | |
| - .fontStyle, | |
| - ), | |
| - letterSpacing: 0.0, | |
| - fontWeight: FlutterFlowTheme.of(context) | |
| - .titleSmall | |
| - .fontWeight, | |
| - fontStyle: FlutterFlowTheme.of(context) | |
| - .titleSmall | |
| - .fontStyle, | |
| - ), | |
| - ), | |
| - ), | |
| - ], | |
| - ), | |
| - Align( | |
| - alignment: AlignmentDirectional(1.0, 0.0), | |
| - child: Padding( | |
| - padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 8.0), | |
| - child: FlutterFlowIconButton( | |
| - borderWidth: 1.0, | |
| - buttonSize: 40.0, | |
| - icon: Icon( | |
| - Icons.ios_share, | |
| - color: FlutterFlowTheme.of(context).primaryText, | |
| - size: 25.0, | |
| - ), | |
| - onPressed: () async {}, | |
| - ), | |
| + title: Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB(0.0, 8.0, 0.0, 0.0), | |
| + child: Row( | |
| + mainAxisSize: MainAxisSize.max, | |
| + mainAxisAlignment: MainAxisAlignment.spaceBetween, | |
| + children: [ | |
| + Text( | |
| + 'Event Details', | |
| + style: FlutterFlowTheme.of(context).titleMedium.override( | |
| + font: GoogleFonts.poppins( | |
| + fontWeight: FontWeight.bold, | |
| + fontStyle: FlutterFlowTheme.of(context) | |
| + .titleMedium | |
| + .fontStyle, | |
| + ), | |
| + letterSpacing: 0.0, | |
| + fontWeight: FontWeight.bold, | |
| + fontStyle: FlutterFlowTheme.of(context) | |
| + .titleMedium | |
| + .fontStyle, | |
| + ), | |
| ), | |
| - ), | |
| - ], | |
| + FlutterFlowIconButton( | |
| + borderRadius: 30.0, | |
| + buttonSize: 40.0, | |
| + fillColor: FlutterFlowTheme.of(context).secondaryBackground, | |
| + icon: Icon( | |
| + Icons.ios_share, | |
| + color: FlutterFlowTheme.of(context).primaryText, | |
| + size: 22.0, | |
| + ), | |
| + onPressed: () async {}, | |
| + ), | |
| + ], | |
| + ), | |
| ), | |
| actions: [], | |
| centerTitle: false, | |
| - elevation: 0.0, | |
| ), | |
| body: SafeArea( | |
| top: true, | |
| @@ -208,40 +195,140 @@ class _EventDetailsWidgetState extends State<EventDetailsWidget> { | |
| mainAxisSize: MainAxisSize.max, | |
| mainAxisAlignment: MainAxisAlignment.spaceBetween, | |
| children: [ | |
| + Divider( | |
| + thickness: 2.0, | |
| + color: FlutterFlowTheme.of(context).secondaryBackground, | |
| + ), | |
| Expanded( | |
| child: SingleChildScrollView( | |
| child: Column( | |
| mainAxisSize: MainAxisSize.min, | |
| crossAxisAlignment: CrossAxisAlignment.start, | |
| children: [ | |
| - Container( | |
| - height: () { | |
| - if (eventDetailsEvtPerformancesRecord | |
| - .photos.firstOrNull == | |
| - null || | |
| - eventDetailsEvtPerformancesRecord | |
| - .photos.firstOrNull == | |
| - '') { | |
| - return 100.0; | |
| - } else if (eventDetailsEvtPerformancesRecord | |
| + if (eventDetailsEvtPerformancesRecord | |
| .photos.firstOrNull != | |
| - _model.evtArtistDoc?.photos.firstOrNull) { | |
| - return 400.0; | |
| - } else { | |
| - return 350.0; | |
| - } | |
| - }(), | |
| - child: Stack( | |
| - alignment: AlignmentDirectional(-1.0, 1.0), | |
| + null && | |
| + eventDetailsEvtPerformancesRecord | |
| + .photos.firstOrNull != | |
| + '') | |
| + Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB( | |
| + 12.0, 4.0, 12.0, 12.0), | |
| + child: ClipRRect( | |
| + borderRadius: BorderRadius.circular(18.0), | |
| + child: Container( | |
| + width: double.infinity, | |
| + decoration: BoxDecoration( | |
| + color: FlutterFlowTheme.of(context) | |
| + .secondaryBackground, | |
| + borderRadius: BorderRadius.circular(18.0), | |
| + ), | |
| + child: Builder( | |
| + builder: (context) { | |
| + final photo = | |
| + eventDetailsEvtPerformancesRecord | |
| + .photos | |
| + .map((e) => e) | |
| + .toList(); | |
| + | |
| + return Container( | |
| + height: 300.0, | |
| + child: Stack( | |
| + children: [ | |
| + PageView.builder( | |
| + controller: | |
| + _model.pageViewController ??= | |
| + PageController( | |
| + initialPage: max( | |
| + 0, | |
| + min( | |
| + 0, | |
| + photo.length - | |
| + 1))), | |
| + scrollDirection: Axis.horizontal, | |
| + itemCount: photo.length, | |
| + itemBuilder: | |
| + (context, photoIndex) { | |
| + final photoItem = | |
| + photo[photoIndex]; | |
| + return custom_widgets | |
| + .TileImageWidget( | |
| + width: 100.0, | |
| + height: 100.0, | |
| + imageUrl: | |
| + valueOrDefault<String>( | |
| + photoItem, | |
| + 'https://picsum.photos/seed/227/600', | |
| + ), | |
| + ); | |
| + }, | |
| + ), | |
| + Align( | |
| + alignment: AlignmentDirectional( | |
| + 0.0, 1.0), | |
| + child: Padding( | |
| + padding: EdgeInsetsDirectional | |
| + .fromSTEB( | |
| + 0.0, 0.0, 0.0, 16.0), | |
| + child: smooth_page_indicator | |
| + .SmoothPageIndicator( | |
| + controller: _model | |
| + .pageViewController ??= | |
| + PageController( | |
| + initialPage: max( | |
| + 0, | |
| + min( | |
| + 0, | |
| + photo.length - | |
| + 1))), | |
| + count: photo.length, | |
| + axisDirection: | |
| + Axis.horizontal, | |
| + onDotClicked: (i) async { | |
| + await _model | |
| + .pageViewController! | |
| + .animateToPage( | |
| + i, | |
| + duration: Duration( | |
| + milliseconds: 500), | |
| + curve: Curves.ease, | |
| + ); | |
| + safeSetState(() {}); | |
| + }, | |
| + effect: smooth_page_indicator | |
| + .SlideEffect( | |
| + spacing: 8.0, | |
| + radius: 8.0, | |
| + dotWidth: 8.0, | |
| + dotHeight: 8.0, | |
| + dotColor: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .tertiary, | |
| + activeDotColor: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .primaryBackground, | |
| + paintStyle: | |
| + PaintingStyle.fill, | |
| + ), | |
| + ), | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ); | |
| + }, | |
| + ), | |
| + ), | |
| + ), | |
| + ), | |
| + if (false) | |
| + Stack( | |
| children: [ | |
| - if (eventDetailsEvtPerformancesRecord | |
| - .photos.firstOrNull != | |
| - null && | |
| - eventDetailsEvtPerformancesRecord | |
| - .photos.firstOrNull != | |
| - '') | |
| + if (false) | |
| Align( | |
| - alignment: AlignmentDirectional(0.0, -1.0), | |
| + alignment: AlignmentDirectional(0.0, -1.39), | |
| child: CachedNetworkImage( | |
| fadeInDuration: | |
| Duration(milliseconds: 500), | |
| @@ -324,516 +411,336 @@ class _EventDetailsWidgetState extends State<EventDetailsWidget> { | |
| ), | |
| ], | |
| ), | |
| - ), | |
| Padding( | |
| padding: EdgeInsetsDirectional.fromSTEB( | |
| - 24.0, 24.0, 24.0, 24.0), | |
| + 24.0, 0.0, 24.0, 24.0), | |
| child: Column( | |
| mainAxisSize: MainAxisSize.max, | |
| crossAxisAlignment: CrossAxisAlignment.stretch, | |
| children: [ | |
| - Container( | |
| - decoration: BoxDecoration(), | |
| - child: Visibility( | |
| - visible: | |
| - _model.evtArtistDoc?.reference != null, | |
| - child: InkWell( | |
| - splashColor: Colors.transparent, | |
| - focusColor: Colors.transparent, | |
| - hoverColor: Colors.transparent, | |
| - highlightColor: Colors.transparent, | |
| - onTap: () async { | |
| - if (eventDetailsEvtPerformancesRecord | |
| - .artistId != | |
| - '') { | |
| - context.pushNamed( | |
| - ProfileDisplayArtistWidget | |
| - .routeName, | |
| - pathParameters: { | |
| - 'artistRef': serializeParam( | |
| - functions.stringtoEvtArtistsDocRef( | |
| - eventDetailsEvtPerformancesRecord | |
| - .artistId), | |
| - ParamType.DocumentReference, | |
| - ), | |
| - }.withoutNulls, | |
| - ); | |
| - } | |
| - }, | |
| - child: Row( | |
| - mainAxisSize: MainAxisSize.max, | |
| - crossAxisAlignment: | |
| - CrossAxisAlignment.start, | |
| - children: [ | |
| - Expanded( | |
| - child: Column( | |
| - mainAxisSize: MainAxisSize.max, | |
| - crossAxisAlignment: | |
| - CrossAxisAlignment.stretch, | |
| - children: [ | |
| - Text( | |
| - valueOrDefault<String>( | |
| - _model.evtArtistDoc?.name, | |
| - 'Artist', | |
| - ), | |
| - style: FlutterFlowTheme.of( | |
| - context) | |
| - .titleMedium | |
| - .override( | |
| - font: | |
| - GoogleFonts.poppins( | |
| - fontWeight: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .titleMedium | |
| - .fontWeight, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .titleMedium | |
| - .fontStyle, | |
| - ), | |
| - letterSpacing: 0.0, | |
| - fontWeight: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .titleMedium | |
| - .fontWeight, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .titleMedium | |
| - .fontStyle, | |
| - ), | |
| - ), | |
| - Container( | |
| - constraints: BoxConstraints( | |
| - maxHeight: 34.0, | |
| - ), | |
| - decoration: BoxDecoration(), | |
| - child: Visibility( | |
| - visible: _model.evtArtistDoc | |
| - ?.genres != | |
| - null && | |
| - (_model.evtArtistDoc | |
| - ?.genres)! | |
| - .isNotEmpty, | |
| - child: Padding( | |
| - padding: | |
| - EdgeInsetsDirectional | |
| - .fromSTEB( | |
| - 0.0, | |
| - 4.0, | |
| - 0.0, | |
| - 0.0), | |
| - child: Builder( | |
| - builder: (context) { | |
| - final genreList = (_model | |
| - .evtArtistDoc | |
| - ?.genres | |
| - .take(5) | |
| - .toList() | |
| - .toList() ?? | |
| - []) | |
| - .take(3) | |
| - .toList(); | |
| - | |
| - return ListView | |
| - .builder( | |
| - padding: | |
| - EdgeInsets.zero, | |
| - shrinkWrap: true, | |
| - scrollDirection: | |
| - Axis.horizontal, | |
| - itemCount: genreList | |
| - .length, | |
| - itemBuilder: (context, | |
| - genreListIndex) { | |
| - final genreListItem = | |
| - genreList[ | |
| - genreListIndex]; | |
| - return PillboxStandardWidget( | |
| - key: Key( | |
| - 'Keygsa_${genreListIndex}_of_${genreList.length}'), | |
| - pillText: | |
| - genreListItem, | |
| - active: true, | |
| - ); | |
| - }, | |
| - ); | |
| - }, | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - ], | |
| - ), | |
| - ), | |
| - if (eventDetailsEvtPerformancesRecord | |
| - .artistId != | |
| - '') | |
| - Padding( | |
| - padding: EdgeInsetsDirectional | |
| - .fromSTEB( | |
| - 0.0, 4.0, 12.0, 0.0), | |
| - child: Icon( | |
| - Icons.arrow_forward_ios_rounded, | |
| - color: | |
| - FlutterFlowTheme.of(context) | |
| - .secondaryText, | |
| - size: 25.0, | |
| - ), | |
| - ), | |
| - ].divide(SizedBox(width: 12.0)), | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - if (_model.evtVenueDoc?.reference != null) | |
| - Container( | |
| - decoration: BoxDecoration(), | |
| - child: InkWell( | |
| - splashColor: Colors.transparent, | |
| - focusColor: Colors.transparent, | |
| - hoverColor: Colors.transparent, | |
| - highlightColor: Colors.transparent, | |
| - onTap: () async { | |
| - context.pushNamed( | |
| - ProfileDisplayVenueWidget.routeName, | |
| - pathParameters: { | |
| - 'venueRef': serializeParam( | |
| - functions.stringtoEvtVenuesDocRef( | |
| - eventDetailsEvtPerformancesRecord | |
| - .venueId), | |
| - ParamType.DocumentReference, | |
| - ), | |
| - }.withoutNulls, | |
| - ); | |
| - }, | |
| - child: Row( | |
| - mainAxisSize: MainAxisSize.max, | |
| - crossAxisAlignment: | |
| - CrossAxisAlignment.start, | |
| - children: [ | |
| - Container( | |
| - width: 34.0, | |
| - decoration: BoxDecoration(), | |
| - child: Align( | |
| - alignment: AlignmentDirectional( | |
| - -1.0, 0.0), | |
| - child: Padding( | |
| - padding: EdgeInsetsDirectional | |
| - .fromSTEB( | |
| - 0.0, 2.0, 0.0, 0.0), | |
| - child: Icon( | |
| - FFIcons.kmapPin, | |
| - color: FlutterFlowTheme.of( | |
| - context) | |
| - .primaryText, | |
| - size: 30.0, | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - Expanded( | |
| - child: Column( | |
| - mainAxisSize: MainAxisSize.max, | |
| - crossAxisAlignment: | |
| - CrossAxisAlignment.stretch, | |
| - children: [ | |
| - Text( | |
| - valueOrDefault<String>( | |
| - _model.evtVenueDoc?.name, | |
| - 'Venue', | |
| - ), | |
| - style: FlutterFlowTheme.of( | |
| - context) | |
| - .titleSmall | |
| - .override( | |
| - font: | |
| - GoogleFonts.poppins( | |
| - fontWeight: | |
| - FontWeight.w600, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .titleSmall | |
| - .fontStyle, | |
| - ), | |
| - letterSpacing: 0.0, | |
| - fontWeight: | |
| - FontWeight.w600, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .titleSmall | |
| - .fontStyle, | |
| - ), | |
| - ), | |
| - Text( | |
| - '${_model.evtVenueDoc?.address.city}, ${_model.evtVenueDoc?.address.region}', | |
| - style: FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .override( | |
| - font: | |
| - GoogleFonts.poppins( | |
| - fontWeight: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - letterSpacing: 0.0, | |
| - fontWeight: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - ), | |
| - InkWell( | |
| - splashColor: | |
| - Colors.transparent, | |
| - focusColor: | |
| - Colors.transparent, | |
| - hoverColor: | |
| - Colors.transparent, | |
| - highlightColor: | |
| - Colors.transparent, | |
| - onTap: () async { | |
| - var confirmDialogResponse = | |
| - await showDialog<bool>( | |
| - context: context, | |
| - builder: | |
| - (alertDialogContext) { | |
| - return AlertDialog( | |
| - title: Text( | |
| - 'Open Maps'), | |
| - content: Text( | |
| - 'This will open an external application. Would you like to continue?'), | |
| - actions: [ | |
| - TextButton( | |
| - onPressed: () => Navigator.pop( | |
| - alertDialogContext, | |
| - false), | |
| - child: Text( | |
| - 'Cancel'), | |
| - ), | |
| - TextButton( | |
| - onPressed: () => Navigator.pop( | |
| - alertDialogContext, | |
| - true), | |
| - child: Text( | |
| - 'Continue'), | |
| - ), | |
| - ], | |
| - ); | |
| - }, | |
| - ) ?? | |
| - false; | |
| - if (confirmDialogResponse) { | |
| - await launchMap( | |
| - location: _model | |
| - .evtVenueDoc | |
| - ?.location, | |
| - title: '', | |
| - ); | |
| - } else { | |
| - Navigator.pop(context); | |
| - } | |
| - }, | |
| - child: Row( | |
| - mainAxisSize: | |
| - MainAxisSize.min, | |
| - children: [ | |
| - Align( | |
| - alignment: | |
| - AlignmentDirectional( | |
| - -1.0, 0.0), | |
| - child: Text( | |
| - '${functions.formatDistance(functions.calculateGeoDistanceMiles(currentUserLocationValue!, _model.evtVenueDoc!.location!))} miles' | |
| - .maybeHandleOverflow( | |
| - maxChars: 50, | |
| - ), | |
| - textAlign: | |
| - TextAlign.end, | |
| - maxLines: 2, | |
| - style: FlutterFlowTheme | |
| - .of(context) | |
| - .bodyMedium | |
| - .override( | |
| - font: GoogleFonts | |
| - .poppins( | |
| - fontWeight: FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - letterSpacing: | |
| - 0.0, | |
| - fontWeight: FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - lineHeight: 2.5, | |
| - ), | |
| - ), | |
| - ), | |
| - Padding( | |
| - padding: | |
| - EdgeInsetsDirectional | |
| - .fromSTEB( | |
| - 8.0, | |
| - 0.0, | |
| - 0.0, | |
| - 4.0), | |
| - child: FaIcon( | |
| - FontAwesomeIcons | |
| - .externalLinkSquareAlt, | |
| - color: FlutterFlowTheme | |
| - .of(context) | |
| - .primary, | |
| - size: 18.0, | |
| - ), | |
| - ), | |
| - ], | |
| - ), | |
| - ), | |
| - ], | |
| - ), | |
| - ), | |
| - Align( | |
| - alignment: | |
| - AlignmentDirectional(0.0, -1.0), | |
| - child: Padding( | |
| - padding: EdgeInsetsDirectional | |
| - .fromSTEB( | |
| - 12.0, 4.0, 12.0, 0.0), | |
| - child: Icon( | |
| - Icons.arrow_forward_ios_rounded, | |
| - color: | |
| - FlutterFlowTheme.of(context) | |
| - .secondaryText, | |
| - size: 25.0, | |
| - ), | |
| - ), | |
| - ), | |
| - ].divide(SizedBox(width: 4.0)), | |
| - ), | |
| - ), | |
| - ), | |
| Row( | |
| mainAxisSize: MainAxisSize.max, | |
| - crossAxisAlignment: CrossAxisAlignment.start, | |
| + mainAxisAlignment: | |
| + MainAxisAlignment.spaceBetween, | |
| children: [ | |
| - Align( | |
| - alignment: AlignmentDirectional(0.0, 0.0), | |
| - child: Container( | |
| - width: 34.0, | |
| - decoration: BoxDecoration(), | |
| - alignment: | |
| - AlignmentDirectional(0.0, 0.0), | |
| - child: Align( | |
| - alignment: | |
| - AlignmentDirectional(-1.0, 0.0), | |
| - child: Padding( | |
| - padding: | |
| - EdgeInsetsDirectional.fromSTEB( | |
| - 0.0, 2.0, 0.0, 0.0), | |
| - child: FaIcon( | |
| - FontAwesomeIcons.clock, | |
| - color: | |
| - FlutterFlowTheme.of(context) | |
| - .primaryText, | |
| - size: 28.0, | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| Expanded( | |
| - child: Column( | |
| - mainAxisSize: MainAxisSize.max, | |
| - crossAxisAlignment: | |
| - CrossAxisAlignment.stretch, | |
| - children: [ | |
| - Text( | |
| - dateTimeFormat( | |
| - "MMM d, y", | |
| - DateTime | |
| - .fromMillisecondsSinceEpoch( | |
| - valueOrDefault<int>( | |
| - eventDetailsEvtPerformancesRecord | |
| - .startTime | |
| - ?.millisecondsSinceEpoch, | |
| - 0, | |
| - ))), | |
| - style: FlutterFlowTheme.of(context) | |
| - .titleSmall | |
| - .override( | |
| - font: GoogleFonts.poppins( | |
| - fontWeight: FontWeight.w600, | |
| + child: Container( | |
| + decoration: BoxDecoration(), | |
| + child: Column( | |
| + mainAxisSize: MainAxisSize.max, | |
| + crossAxisAlignment: | |
| + CrossAxisAlignment.start, | |
| + children: [ | |
| + Text( | |
| + eventDetailsEvtPerformancesRecord | |
| + .name != | |
| + '' | |
| + ? eventDetailsEvtPerformancesRecord | |
| + .name | |
| + : '${_model.evtArtistDoc?.name} @ ${_model.evtVenueDoc?.name}', | |
| + style: FlutterFlowTheme.of( | |
| + context) | |
| + .titleMedium | |
| + .override( | |
| + font: GoogleFonts.poppins( | |
| + fontWeight: | |
| + FontWeight.bold, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .titleMedium | |
| + .fontStyle, | |
| + ), | |
| + letterSpacing: 0.0, | |
| + fontWeight: FontWeight.bold, | |
| fontStyle: | |
| FlutterFlowTheme.of( | |
| context) | |
| - .titleSmall | |
| + .titleMedium | |
| .fontStyle, | |
| ), | |
| - letterSpacing: 0.0, | |
| - fontWeight: FontWeight.w600, | |
| + ), | |
| + Text( | |
| + valueOrDefault<String>( | |
| + _model.evtVenueDoc?.name, | |
| + 'Venue', | |
| + ), | |
| + maxLines: 1, | |
| + style: | |
| + FlutterFlowTheme.of(context) | |
| + .labelMedium | |
| + .override( | |
| + font: | |
| + GoogleFonts.poppins( | |
| + fontWeight: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .labelMedium | |
| + .fontWeight, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .labelMedium | |
| + .fontStyle, | |
| + ), | |
| + letterSpacing: 0.0, | |
| + fontWeight: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .labelMedium | |
| + .fontWeight, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .labelMedium | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| + ), | |
| + wrapWithModel( | |
| + model: _model | |
| + .eventInterestWidgetDetailsModel, | |
| + updateCallback: () => safeSetState(() {}), | |
| + child: EventInterestWidgetDetailsWidget( | |
| + attendanceCount: | |
| + eventDetailsEvtPerformancesRecord | |
| + .numLikes, | |
| + eventDetails: false, | |
| + eventRef: widget.eventRef!, | |
| + eventTime: | |
| + eventDetailsEvtPerformancesRecord | |
| + .startTime!, | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + if (_model.evtArtistDoc?.genres != null && | |
| + (_model.evtArtistDoc?.genres)!.isNotEmpty) | |
| + Container( | |
| + constraints: BoxConstraints( | |
| + maxHeight: 32.0, | |
| + ), | |
| + decoration: BoxDecoration(), | |
| + child: Builder( | |
| + builder: (context) { | |
| + final genreList = (_model | |
| + .evtArtistDoc?.genres | |
| + .take(5) | |
| + .toList() | |
| + .toList() ?? | |
| + []) | |
| + .take(3) | |
| + .toList(); | |
| + | |
| + return ListView.builder( | |
| + padding: EdgeInsets.zero, | |
| + shrinkWrap: true, | |
| + scrollDirection: Axis.horizontal, | |
| + itemCount: genreList.length, | |
| + itemBuilder: | |
| + (context, genreListIndex) { | |
| + final genreListItem = | |
| + genreList[genreListIndex]; | |
| + return PillboxStandardWidget( | |
| + key: Key( | |
| + 'Keygsa_${genreListIndex}_of_${genreList.length}'), | |
| + pillText: genreListItem, | |
| + active: true, | |
| + ); | |
| + }, | |
| + ); | |
| + }, | |
| + ), | |
| + ), | |
| + if (_model.evtArtistDoc?.reference != null) | |
| + Container( | |
| + decoration: BoxDecoration(), | |
| + child: Column( | |
| + mainAxisSize: MainAxisSize.max, | |
| + crossAxisAlignment: | |
| + CrossAxisAlignment.start, | |
| + children: [ | |
| + Text( | |
| + 'Featuring', | |
| + style: FlutterFlowTheme.of(context) | |
| + .titleSmall | |
| + .override( | |
| + font: GoogleFonts.poppins( | |
| + fontWeight: FontWeight.bold, | |
| fontStyle: | |
| FlutterFlowTheme.of( | |
| context) | |
| .titleSmall | |
| .fontStyle, | |
| ), | |
| - ), | |
| - Text( | |
| - dateTimeFormat( | |
| - "h:mm a", | |
| - DateTime | |
| - .fromMillisecondsSinceEpoch( | |
| - valueOrDefault<int>( | |
| - eventDetailsEvtPerformancesRecord | |
| - .startTime | |
| - ?.millisecondsSinceEpoch, | |
| - 0, | |
| - ))), | |
| - style: FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .override( | |
| - font: GoogleFonts.poppins( | |
| - fontWeight: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| + letterSpacing: 0.0, | |
| + fontWeight: FontWeight.bold, | |
| + fontStyle: | |
| + FlutterFlowTheme.of(context) | |
| + .titleSmall | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + InkWell( | |
| + splashColor: Colors.transparent, | |
| + focusColor: Colors.transparent, | |
| + hoverColor: Colors.transparent, | |
| + highlightColor: Colors.transparent, | |
| + onTap: () async { | |
| + if (eventDetailsEvtPerformancesRecord | |
| + .artistId != | |
| + '') { | |
| + context.pushNamed( | |
| + ProfileDisplayArtistWidget | |
| + .routeName, | |
| + pathParameters: { | |
| + 'artistRef': serializeParam( | |
| + functions | |
| + .stringtoEvtArtistsDocRef( | |
| + eventDetailsEvtPerformancesRecord | |
| + .artistId), | |
| + ParamType.DocumentReference, | |
| ), | |
| - letterSpacing: 0.0, | |
| + }.withoutNulls, | |
| + ); | |
| + } | |
| + }, | |
| + child: Container( | |
| + decoration: BoxDecoration( | |
| + borderRadius: | |
| + BorderRadius.circular(18.0), | |
| + border: Border.all( | |
| + color: | |
| + FlutterFlowTheme.of(context) | |
| + .tertiary, | |
| + width: 1.0, | |
| + ), | |
| + ), | |
| + child: Padding( | |
| + padding: EdgeInsets.all(12.0), | |
| + child: Row( | |
| + mainAxisSize: MainAxisSize.max, | |
| + crossAxisAlignment: | |
| + CrossAxisAlignment.center, | |
| + children: [ | |
| + wrapWithModel( | |
| + model: _model | |
| + .profilePictureModel, | |
| + updateCallback: () => | |
| + safeSetState(() {}), | |
| + child: ProfilePictureWidget( | |
| + photoUrl: _model | |
| + .evtArtistDoc | |
| + ?.photos | |
| + .firstOrNull, | |
| + size: 50, | |
| + ), | |
| + ), | |
| + Expanded( | |
| + child: Column( | |
| + mainAxisSize: | |
| + MainAxisSize.max, | |
| + crossAxisAlignment: | |
| + CrossAxisAlignment | |
| + .stretch, | |
| + children: [ | |
| + Text( | |
| + valueOrDefault< | |
| + String>( | |
| + _model.evtArtistDoc | |
| + ?.name, | |
| + 'Artist', | |
| + ), | |
| + style: FlutterFlowTheme | |
| + .of(context) | |
| + .titleMedium | |
| + .override( | |
| + font: GoogleFonts | |
| + .poppins( | |
| + fontWeight: FlutterFlowTheme.of( | |
| + context) | |
| + .titleMedium | |
| + .fontWeight, | |
| + fontStyle: FlutterFlowTheme.of( | |
| + context) | |
| + .titleMedium | |
| + .fontStyle, | |
| + ), | |
| + letterSpacing: | |
| + 0.0, | |
| + fontWeight: FlutterFlowTheme.of( | |
| + context) | |
| + .titleMedium | |
| + .fontWeight, | |
| + fontStyle: FlutterFlowTheme.of( | |
| + context) | |
| + .titleMedium | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| + if (eventDetailsEvtPerformancesRecord | |
| + .artistId != | |
| + '') | |
| + Icon( | |
| + Icons | |
| + .arrow_forward_ios_rounded, | |
| + color: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .primary, | |
| + size: 25.0, | |
| + ), | |
| + ].divide(SizedBox(width: 12.0)), | |
| + ), | |
| + ), | |
| + ), | |
| + ), | |
| + ].divide(SizedBox(height: 8.0)), | |
| + ), | |
| + ), | |
| + if (_model.evtArtistDoc?.about != null && | |
| + _model.evtArtistDoc?.about != '') | |
| + Container( | |
| + decoration: BoxDecoration(), | |
| + child: Column( | |
| + mainAxisSize: MainAxisSize.max, | |
| + crossAxisAlignment: | |
| + CrossAxisAlignment.start, | |
| + children: [ | |
| + Text( | |
| + 'Description', | |
| + style: FlutterFlowTheme.of(context) | |
| + .titleSmall | |
| + .override( | |
| + font: GoogleFonts.poppins( | |
| + fontWeight: FontWeight.bold, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .titleSmall | |
| + .fontStyle, | |
| + ), | |
| + letterSpacing: 0.0, | |
| + fontWeight: FontWeight.bold, | |
| + fontStyle: | |
| + FlutterFlowTheme.of(context) | |
| + .titleSmall | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + Text( | |
| + eventDetailsEvtPerformancesRecord | |
| + .about, | |
| + style: FlutterFlowTheme.of(context) | |
| + .bodyMedium | |
| + .override( | |
| + font: GoogleFonts.poppins( | |
| fontWeight: | |
| FlutterFlowTheme.of( | |
| context) | |
| @@ -845,51 +752,402 @@ class _EventDetailsWidgetState extends State<EventDetailsWidget> { | |
| .bodyMedium | |
| .fontStyle, | |
| ), | |
| - ), | |
| - ], | |
| - ), | |
| + letterSpacing: 0.0, | |
| + fontWeight: | |
| + FlutterFlowTheme.of(context) | |
| + .bodyMedium | |
| + .fontWeight, | |
| + fontStyle: | |
| + FlutterFlowTheme.of(context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + ].divide(SizedBox(height: 8.0)), | |
| + ), | |
| + ), | |
| + Container( | |
| + decoration: BoxDecoration( | |
| + borderRadius: BorderRadius.circular(18.0), | |
| + border: Border.all( | |
| + color: | |
| + FlutterFlowTheme.of(context).tertiary, | |
| + width: 1.0, | |
| + ), | |
| + ), | |
| + child: Padding( | |
| + padding: EdgeInsets.all(12.0), | |
| + child: Row( | |
| + mainAxisSize: MainAxisSize.max, | |
| + crossAxisAlignment: | |
| + CrossAxisAlignment.center, | |
| + children: [ | |
| + Container( | |
| + width: 50.0, | |
| + height: 50.0, | |
| + decoration: BoxDecoration( | |
| + color: FlutterFlowTheme.of(context) | |
| + .secondaryBackground, | |
| + shape: BoxShape.circle, | |
| + ), | |
| + alignment: | |
| + AlignmentDirectional(0.0, 0.0), | |
| + child: FaIcon( | |
| + FontAwesomeIcons.calendar, | |
| + color: FlutterFlowTheme.of(context) | |
| + .primaryText, | |
| + size: 26.0, | |
| + ), | |
| + ), | |
| + Expanded( | |
| + child: Column( | |
| + mainAxisSize: MainAxisSize.max, | |
| + crossAxisAlignment: | |
| + CrossAxisAlignment.stretch, | |
| + children: [ | |
| + Text( | |
| + dateTimeFormat( | |
| + "MMM d, y", | |
| + DateTime | |
| + .fromMillisecondsSinceEpoch( | |
| + valueOrDefault<int>( | |
| + eventDetailsEvtPerformancesRecord | |
| + .startTime | |
| + ?.millisecondsSinceEpoch, | |
| + 0, | |
| + ))), | |
| + style: FlutterFlowTheme.of( | |
| + context) | |
| + .titleSmall | |
| + .override( | |
| + font: GoogleFonts.poppins( | |
| + fontWeight: | |
| + FontWeight.w600, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .titleSmall | |
| + .fontStyle, | |
| + ), | |
| + letterSpacing: 0.0, | |
| + fontWeight: | |
| + FontWeight.w600, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .titleSmall | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + Text( | |
| + dateTimeFormat( | |
| + "h:mm a", | |
| + DateTime | |
| + .fromMillisecondsSinceEpoch( | |
| + valueOrDefault<int>( | |
| + eventDetailsEvtPerformancesRecord | |
| + .startTime | |
| + ?.millisecondsSinceEpoch, | |
| + 0, | |
| + ))), | |
| + style: FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .override( | |
| + font: GoogleFonts.poppins( | |
| + fontWeight: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontWeight, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + letterSpacing: 0.0, | |
| + fontWeight: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontWeight, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| + ].divide(SizedBox(width: 12.0)), | |
| ), | |
| - ].divide(SizedBox(width: 4.0)), | |
| - ), | |
| - wrapWithModel( | |
| - model: _model.eventInterestWidgetDetailsModel, | |
| - updateCallback: () => safeSetState(() {}), | |
| - child: EventInterestWidgetDetailsWidget( | |
| - attendanceCount: | |
| - eventDetailsEvtPerformancesRecord | |
| - .numLikes, | |
| - eventDetails: false, | |
| - eventRef: widget.eventRef!, | |
| - eventTime: eventDetailsEvtPerformancesRecord | |
| - .startTime!, | |
| ), | |
| ), | |
| - Text( | |
| - eventDetailsEvtPerformancesRecord.about, | |
| - style: FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .override( | |
| - font: GoogleFonts.poppins( | |
| - fontWeight: | |
| - FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: | |
| - FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| + if (_model.evtVenueDoc?.reference != null) | |
| + InkWell( | |
| + splashColor: Colors.transparent, | |
| + focusColor: Colors.transparent, | |
| + hoverColor: Colors.transparent, | |
| + highlightColor: Colors.transparent, | |
| + onTap: () async { | |
| + context.pushNamed( | |
| + ProfileDisplayVenueWidget.routeName, | |
| + pathParameters: { | |
| + 'venueRef': serializeParam( | |
| + functions.stringtoEvtVenuesDocRef( | |
| + eventDetailsEvtPerformancesRecord | |
| + .venueId), | |
| + ParamType.DocumentReference, | |
| + ), | |
| + }.withoutNulls, | |
| + ); | |
| + }, | |
| + child: Container( | |
| + decoration: BoxDecoration( | |
| + borderRadius: | |
| + BorderRadius.circular(18.0), | |
| + border: Border.all( | |
| + color: FlutterFlowTheme.of(context) | |
| + .tertiary, | |
| + width: 1.0, | |
| ), | |
| - letterSpacing: 0.0, | |
| - fontWeight: FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| ), | |
| - ), | |
| + child: Padding( | |
| + padding: EdgeInsets.all(12.0), | |
| + child: Row( | |
| + mainAxisSize: MainAxisSize.max, | |
| + crossAxisAlignment: | |
| + CrossAxisAlignment.center, | |
| + children: [ | |
| + Container( | |
| + width: 50.0, | |
| + height: 50.0, | |
| + decoration: BoxDecoration( | |
| + color: | |
| + FlutterFlowTheme.of(context) | |
| + .secondaryBackground, | |
| + shape: BoxShape.circle, | |
| + ), | |
| + alignment: AlignmentDirectional( | |
| + 0.0, 0.0), | |
| + child: Icon( | |
| + FFIcons.kmapPin, | |
| + color: | |
| + FlutterFlowTheme.of(context) | |
| + .primaryText, | |
| + size: 26.0, | |
| + ), | |
| + ), | |
| + Expanded( | |
| + child: Column( | |
| + mainAxisSize: MainAxisSize.max, | |
| + crossAxisAlignment: | |
| + CrossAxisAlignment.stretch, | |
| + children: [ | |
| + Text( | |
| + valueOrDefault<String>( | |
| + _model.evtVenueDoc?.name, | |
| + 'Venue', | |
| + ), | |
| + style: FlutterFlowTheme.of( | |
| + context) | |
| + .titleSmall | |
| + .override( | |
| + font: GoogleFonts | |
| + .poppins( | |
| + fontWeight: | |
| + FontWeight.w600, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .titleSmall | |
| + .fontStyle, | |
| + ), | |
| + letterSpacing: 0.0, | |
| + fontWeight: | |
| + FontWeight.w600, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .titleSmall | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + Text( | |
| + '${_model.evtVenueDoc?.address.city}, ${_model.evtVenueDoc?.address.region}', | |
| + style: FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .override( | |
| + font: GoogleFonts | |
| + .poppins( | |
| + fontWeight: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontWeight, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + letterSpacing: 0.0, | |
| + fontWeight: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontWeight, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + InkWell( | |
| + splashColor: | |
| + Colors.transparent, | |
| + focusColor: | |
| + Colors.transparent, | |
| + hoverColor: | |
| + Colors.transparent, | |
| + highlightColor: | |
| + Colors.transparent, | |
| + onTap: () async { | |
| + var confirmDialogResponse = | |
| + await showDialog< | |
| + bool>( | |
| + context: | |
| + context, | |
| + builder: | |
| + (alertDialogContext) { | |
| + return AlertDialog( | |
| + title: Text( | |
| + 'Open Maps'), | |
| + content: Text( | |
| + 'This will open an external application. Would you like to continue?'), | |
| + actions: [ | |
| + TextButton( | |
| + onPressed: () => Navigator.pop( | |
| + alertDialogContext, | |
| + false), | |
| + child: Text( | |
| + 'Cancel'), | |
| + ), | |
| + TextButton( | |
| + onPressed: () => Navigator.pop( | |
| + alertDialogContext, | |
| + true), | |
| + child: Text( | |
| + 'Continue'), | |
| + ), | |
| + ], | |
| + ); | |
| + }, | |
| + ) ?? | |
| + false; | |
| + if (confirmDialogResponse) { | |
| + await launchMap( | |
| + location: _model | |
| + .evtVenueDoc | |
| + ?.location, | |
| + title: '', | |
| + ); | |
| + } else { | |
| + Navigator.pop(context); | |
| + } | |
| + }, | |
| + child: Row( | |
| + mainAxisSize: | |
| + MainAxisSize.min, | |
| + children: [ | |
| + Align( | |
| + alignment: | |
| + AlignmentDirectional( | |
| + -1.0, 0.0), | |
| + child: Text( | |
| + '${functions.formatDistance(functions.calculateGeoDistanceMiles(currentUserLocationValue!, _model.evtVenueDoc!.location!))} miles' | |
| + .maybeHandleOverflow( | |
| + maxChars: 50, | |
| + ), | |
| + textAlign: | |
| + TextAlign.end, | |
| + maxLines: 2, | |
| + style: FlutterFlowTheme | |
| + .of(context) | |
| + .bodyMedium | |
| + .override( | |
| + font: GoogleFonts | |
| + .poppins( | |
| + fontWeight: FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontWeight, | |
| + fontStyle: FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + letterSpacing: | |
| + 0.0, | |
| + fontWeight: FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontWeight, | |
| + fontStyle: FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + lineHeight: | |
| + 2.5, | |
| + ), | |
| + ), | |
| + ), | |
| + Padding( | |
| + padding: | |
| + EdgeInsetsDirectional | |
| + .fromSTEB( | |
| + 8.0, | |
| + 0.0, | |
| + 0.0, | |
| + 4.0), | |
| + child: FaIcon( | |
| + FontAwesomeIcons | |
| + .externalLinkSquareAlt, | |
| + color: FlutterFlowTheme | |
| + .of(context) | |
| + .primary, | |
| + size: 18.0, | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| + Align( | |
| + alignment: AlignmentDirectional( | |
| + 0.0, -1.0), | |
| + child: Icon( | |
| + Icons.arrow_forward_ios_rounded, | |
| + color: | |
| + FlutterFlowTheme.of(context) | |
| + .primary, | |
| + size: 25.0, | |
| + ), | |
| + ), | |
| + ].divide(SizedBox(width: 12.0)), | |
| + ), | |
| + ), | |
| + ), | |
| + ), | |
| ] | |
| - .divide(SizedBox(height: 24.0)) | |
| + .divide(SizedBox(height: 16.0)) | |
| .addToStart(SizedBox(height: 1.0)), | |
| ), | |
| ), | |
| diff --git a/lib/events/event_interest_widget/event_interest_widget_widget.dart b/lib/events/event_interest_widget/event_interest_widget_widget.dart | |
| index a1be209..76aec86 100644 | |
| --- a/lib/events/event_interest_widget/event_interest_widget_widget.dart | |
| +++ b/lib/events/event_interest_widget/event_interest_widget_widget.dart | |
| @@ -185,25 +185,21 @@ class _EventInterestWidgetWidgetState extends State<EventInterestWidgetWidget> { | |
| ), | |
| ), | |
| if (widget.transparentBG) | |
| - Material( | |
| - color: Colors.transparent, | |
| - elevation: 2.0, | |
| - shape: const CircleBorder(), | |
| + Opacity( | |
| + opacity: 0.4, | |
| child: Container( | |
| width: 45.0, | |
| height: 45.0, | |
| decoration: BoxDecoration( | |
| - color: Theme.of(context).brightness == Brightness.light | |
| - ? Color(0x0EF1F4F8) | |
| - : Color(0x0E383C3C), | |
| + color: FlutterFlowTheme.of(context).primaryBackground, | |
| shape: BoxShape.circle, | |
| ), | |
| child: ClipRRect( | |
| borderRadius: BorderRadius.circular(24.0), | |
| child: BackdropFilter( | |
| filter: ImageFilter.blur( | |
| - sigmaX: 2.0, | |
| - sigmaY: 2.0, | |
| + sigmaX: 0.0, | |
| + sigmaY: 0.0, | |
| ), | |
| ), | |
| ), | |
| diff --git a/lib/events/event_interest_widget_details/event_interest_widget_details_model.dart b/lib/events/event_interest_widget_details/event_interest_widget_details_model.dart | |
| index 7ecb9ac..2fd1604 100644 | |
| --- a/lib/events/event_interest_widget_details/event_interest_widget_details_model.dart | |
| +++ b/lib/events/event_interest_widget_details/event_interest_widget_details_model.dart | |
| @@ -17,9 +17,9 @@ class EventInterestWidgetDetailsModel | |
| // Stores action output result for [Backend Call - Read Document] action in eventInterestWidgetDetails widget. | |
| mystage_base_lib_p8jvwd_backend.ReactionsRecord? reactionOnInit; | |
| - // Stores action output result for [Action Block - EnsureAuthenticatedOrPrompt] action in VenueDetails widget. | |
| + // Stores action output result for [Action Block - EnsureAuthenticatedOrPrompt] action in Stack widget. | |
| bool? hasProfile; | |
| - // Stores action output result for [Backend Call - Create Document] action in VenueDetails widget. | |
| + // Stores action output result for [Backend Call - Create Document] action in Stack widget. | |
| mystage_base_lib_p8jvwd_backend.ReactionsRecord? reactionOnCreation; | |
| @override | |
| diff --git a/lib/events/event_interest_widget_details/event_interest_widget_details_widget.dart b/lib/events/event_interest_widget_details/event_interest_widget_details_widget.dart | |
| index b24f6da..f7636ca 100644 | |
| --- a/lib/events/event_interest_widget_details/event_interest_widget_details_widget.dart | |
| +++ b/lib/events/event_interest_widget_details/event_interest_widget_details_widget.dart | |
| @@ -12,7 +12,6 @@ import 'package:ff_theme/flutter_flow/flutter_flow_theme.dart'; | |
| import 'package:flutter/material.dart'; | |
| import 'package:flutter/scheduler.dart'; | |
| import 'package:font_awesome_flutter/font_awesome_flutter.dart'; | |
| -import 'package:google_fonts/google_fonts.dart'; | |
| import 'package:provider/provider.dart'; | |
| import 'event_interest_widget_details_model.dart'; | |
| export 'event_interest_widget_details_model.dart'; | |
| @@ -96,160 +95,110 @@ class _EventInterestWidgetDetailsWidgetState | |
| hoverColor: Colors.transparent, | |
| highlightColor: Colors.transparent, | |
| onTap: () async { | |
| + var _shouldSetState = false; | |
| _model.hasProfile = await action_blocks.ensureAuthenticatedOrPrompt( | |
| context, | |
| canCancel: true, | |
| ); | |
| + _shouldSetState = true; | |
| await actions.printStatement( | |
| 'How\'d I get here??', | |
| ); | |
| - if (_model.activeProfileReaction != null) { | |
| - // Delete Reaction | |
| - await _model.activeProfileReaction!.reference.delete(); | |
| - // Clear Reaction Data | |
| - _model.activeProfileReaction = null; | |
| - _model.attending = false; | |
| - safeSetState(() {}); | |
| - } else { | |
| - // Create Reaction | |
| + if (loggedIn) { | |
| + if (_model.activeProfileReaction != null) { | |
| + // Delete Reaction | |
| + await _model.activeProfileReaction!.reference.delete(); | |
| + // Clear Reaction Data | |
| + _model.activeProfileReaction = null; | |
| + _model.attending = false; | |
| + safeSetState(() {}); | |
| + } else { | |
| + // Create Reaction | |
| - var reactionsRecordReference = mystage_base_lib_p8jvwd_backend | |
| - .ReactionsRecord.collection | |
| - .doc(functions.reactionidFromDocumentAndProfile( | |
| - 'evt_performances', | |
| - widget.eventRef!.id, | |
| - mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| - .profileActiveRef!)!); | |
| - await reactionsRecordReference.set({ | |
| - ...mystage_base_lib_p8jvwd_backend.createReactionsRecordData( | |
| - account: currentUserReference, | |
| - profile: mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| - .profileActiveRef, | |
| - reaction: '✔️', | |
| - contentId: 'evt_performances/${widget.eventRef?.id}', | |
| - contentTime: widget.eventTime, | |
| - ), | |
| - ...mapToFirestore( | |
| - { | |
| - 'created_time': FieldValue.serverTimestamp(), | |
| - }, | |
| - ), | |
| - }); | |
| - _model.reactionOnCreation = mystage_base_lib_p8jvwd_backend | |
| - .ReactionsRecord.getDocumentFromData({ | |
| - ...mystage_base_lib_p8jvwd_backend.createReactionsRecordData( | |
| - account: currentUserReference, | |
| - profile: mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| - .profileActiveRef, | |
| - reaction: '✔️', | |
| - contentId: 'evt_performances/${widget.eventRef?.id}', | |
| - contentTime: widget.eventTime, | |
| - ), | |
| - ...mapToFirestore( | |
| - { | |
| - 'created_time': DateTime.now(), | |
| - }, | |
| - ), | |
| - }, reactionsRecordReference); | |
| - // Store Reaction Data | |
| - _model.activeProfileReaction = _model.reactionOnCreation; | |
| - _model.attending = true; | |
| - safeSetState(() {}); | |
| + var reactionsRecordReference = mystage_base_lib_p8jvwd_backend | |
| + .ReactionsRecord.collection | |
| + .doc(functions.reactionidFromDocumentAndProfile( | |
| + 'evt_performances', | |
| + widget.eventRef!.id, | |
| + mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| + .profileActiveRef!)!); | |
| + await reactionsRecordReference.set({ | |
| + ...mystage_base_lib_p8jvwd_backend.createReactionsRecordData( | |
| + account: currentUserReference, | |
| + profile: mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| + .profileActiveRef, | |
| + reaction: '✔️', | |
| + contentId: 'evt_performances/${widget.eventRef?.id}', | |
| + contentTime: widget.eventTime, | |
| + ), | |
| + ...mapToFirestore( | |
| + { | |
| + 'created_time': FieldValue.serverTimestamp(), | |
| + }, | |
| + ), | |
| + }); | |
| + _model.reactionOnCreation = mystage_base_lib_p8jvwd_backend | |
| + .ReactionsRecord.getDocumentFromData({ | |
| + ...mystage_base_lib_p8jvwd_backend.createReactionsRecordData( | |
| + account: currentUserReference, | |
| + profile: mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| + .profileActiveRef, | |
| + reaction: '✔️', | |
| + contentId: 'evt_performances/${widget.eventRef?.id}', | |
| + contentTime: widget.eventTime, | |
| + ), | |
| + ...mapToFirestore( | |
| + { | |
| + 'created_time': DateTime.now(), | |
| + }, | |
| + ), | |
| + }, reactionsRecordReference); | |
| + _shouldSetState = true; | |
| + // Store Reaction Data | |
| + _model.activeProfileReaction = _model.reactionOnCreation; | |
| + _model.attending = true; | |
| + safeSetState(() {}); | |
| + } | |
| + | |
| + if (_shouldSetState) safeSetState(() {}); | |
| + return; | |
| + } else { | |
| + if (_shouldSetState) safeSetState(() {}); | |
| + return; | |
| } | |
| - safeSetState(() {}); | |
| + if (_shouldSetState) safeSetState(() {}); | |
| }, | |
| - child: Row( | |
| - mainAxisSize: MainAxisSize.min, | |
| - mainAxisAlignment: MainAxisAlignment.start, | |
| - crossAxisAlignment: CrossAxisAlignment.center, | |
| + child: Stack( | |
| + alignment: AlignmentDirectional(0.0, 0.0), | |
| children: [ | |
| - Align( | |
| - alignment: AlignmentDirectional(-1.0, 0.0), | |
| - child: Container( | |
| - width: 34.0, | |
| - height: 34.0, | |
| - child: Stack( | |
| - alignment: AlignmentDirectional(0.0, 0.0), | |
| - children: [ | |
| - Align( | |
| - alignment: AlignmentDirectional(0.0, 0.0), | |
| - child: Container( | |
| - decoration: BoxDecoration(), | |
| - child: Visibility( | |
| - visible: _model.attending, | |
| - child: Padding( | |
| - padding: EdgeInsets.all(2.0), | |
| - child: FaIcon( | |
| - FontAwesomeIcons.solidCheckCircle, | |
| - color: FlutterFlowTheme.of(context).primary, | |
| - size: widget.eventDetails ? 34.0 : 28.0, | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - Align( | |
| - alignment: AlignmentDirectional(0.0, 0.0), | |
| - child: Container( | |
| - decoration: BoxDecoration(), | |
| - child: Visibility( | |
| - visible: !_model.attending, | |
| - child: Padding( | |
| - padding: EdgeInsetsDirectional.fromSTEB( | |
| - 0.0, 1.0, 0.0, 0.0), | |
| - child: Icon( | |
| - Icons.add_circle_outline_rounded, | |
| - color: FlutterFlowTheme.of(context).primaryText, | |
| - size: 34.0, | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - ], | |
| + Container( | |
| + width: 45.0, | |
| + height: 45.0, | |
| + decoration: BoxDecoration( | |
| + color: FlutterFlowTheme.of(context).secondaryBackground, | |
| + shape: BoxShape.circle, | |
| + ), | |
| + ), | |
| + if (_model.attending) | |
| + Padding( | |
| + padding: EdgeInsets.all(2.0), | |
| + child: FaIcon( | |
| + FontAwesomeIcons.solidBookmark, | |
| + color: FlutterFlowTheme.of(context).primary, | |
| + size: 20.0, | |
| ), | |
| ), | |
| - ), | |
| - Expanded( | |
| - child: Column( | |
| - mainAxisSize: MainAxisSize.min, | |
| - mainAxisAlignment: MainAxisAlignment.center, | |
| - crossAxisAlignment: CrossAxisAlignment.start, | |
| - children: [ | |
| - Align( | |
| - alignment: AlignmentDirectional(-1.0, 0.0), | |
| - child: Padding( | |
| - padding: EdgeInsetsDirectional.fromSTEB(8.0, 6.0, 0.0, 6.0), | |
| - child: Text( | |
| - widget.attendanceCount! > 0 | |
| - ? '${widget.attendanceCount?.toString()} Interested' | |
| - : 'Interested', | |
| - style: FlutterFlowTheme.of(context).bodyMedium.override( | |
| - font: GoogleFonts.poppins( | |
| - fontWeight: FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - fontSize: 14.0, | |
| - letterSpacing: 0.0, | |
| - fontWeight: FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - ], | |
| + if (!_model.attending) | |
| + Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB(0.0, 1.0, 0.0, 0.0), | |
| + child: FaIcon( | |
| + FontAwesomeIcons.bookmark, | |
| + color: FlutterFlowTheme.of(context).primaryText, | |
| + size: 22.0, | |
| + ), | |
| ), | |
| - ), | |
| - ].divide(SizedBox(width: 5.0)).addToStart(SizedBox(width: 0.0)), | |
| + ], | |
| ), | |
| ); | |
| } | |
| diff --git a/lib/events/event_saved_listing_vertical/event_saved_listing_vertical_widget.dart b/lib/events/event_saved_listing_vertical/event_saved_listing_vertical_widget.dart | |
| index 543f5f8..aa7f934 100644 | |
| --- a/lib/events/event_saved_listing_vertical/event_saved_listing_vertical_widget.dart | |
| +++ b/lib/events/event_saved_listing_vertical/event_saved_listing_vertical_widget.dart | |
| @@ -94,7 +94,7 @@ class _EventSavedListingVerticalWidgetState | |
| } | |
| return Padding( | |
| - padding: EdgeInsetsDirectional.fromSTEB(12.0, 0.0, 12.0, 0.0), | |
| + padding: EdgeInsetsDirectional.fromSTEB(12.0, 12.0, 12.0, 0.0), | |
| child: | |
| StreamBuilder<mystage_base_lib_p8jvwd_backend.EvtPerformancesRecord>( | |
| stream: | |
| diff --git a/lib/events/event_search_listing_vertical/event_search_listing_vertical_widget.dart b/lib/events/event_search_listing_vertical/event_search_listing_vertical_widget.dart | |
| index b5f4b16..1719b53 100644 | |
| --- a/lib/events/event_search_listing_vertical/event_search_listing_vertical_widget.dart | |
| +++ b/lib/events/event_search_listing_vertical/event_search_listing_vertical_widget.dart | |
| @@ -84,7 +84,7 @@ class _EventSearchListingVerticalWidgetState | |
| } | |
| return Padding( | |
| - padding: EdgeInsetsDirectional.fromSTEB(12.0, 0.0, 12.0, 0.0), | |
| + padding: EdgeInsetsDirectional.fromSTEB(12.0, 12.0, 12.0, 0.0), | |
| child: InkWell( | |
| splashColor: Colors.transparent, | |
| focusColor: Colors.transparent, | |
| diff --git a/lib/events/search_city/search_city_widget.dart b/lib/events/search_city/search_city_widget.dart | |
| index ed76417..eba8a9f 100644 | |
| --- a/lib/events/search_city/search_city_widget.dart | |
| +++ b/lib/events/search_city/search_city_widget.dart | |
| @@ -656,9 +656,6 @@ class _SearchCityWidgetState extends State<SearchCityWidget> { | |
| mainAxisSize: MainAxisSize.max, | |
| children: [ | |
| Container( | |
| - constraints: BoxConstraints( | |
| - maxHeight: _model.searchIsOn ? 250.0 : 2000.0, | |
| - ), | |
| decoration: BoxDecoration(), | |
| child: Builder( | |
| builder: (context) { | |
| diff --git a/lib/events/search_page/search_page_widget.dart b/lib/events/search_page/search_page_widget.dart | |
| index a1045dc..79abc29 100644 | |
| --- a/lib/events/search_page/search_page_widget.dart | |
| +++ b/lib/events/search_page/search_page_widget.dart | |
| @@ -479,7 +479,7 @@ class _SearchPageWidgetState extends State<SearchPageWidget> { | |
| ), | |
| child: Padding( | |
| padding: EdgeInsetsDirectional.fromSTEB( | |
| - 12.0, 20.0, 12.0, 12.0), | |
| + 12.0, 12.0, 12.0, 12.0), | |
| child: Row( | |
| mainAxisSize: MainAxisSize.max, | |
| mainAxisAlignment: MainAxisAlignment.end, | |
| @@ -1684,7 +1684,7 @@ class _SearchPageWidgetState extends State<SearchPageWidget> { | |
| .waitForOnePageForListView1(); | |
| }, | |
| child: PagedListView<ApiPagingParams, | |
| - dynamic>.separated( | |
| + dynamic>( | |
| pagingController: | |
| _model.setListViewController1( | |
| (nextPageMarker) => | |
| @@ -1770,16 +1770,14 @@ class _SearchPageWidgetState extends State<SearchPageWidget> { | |
| ), | |
| padding: EdgeInsets.fromLTRB( | |
| 0, | |
| - 12.0, | |
| 0, | |
| - 80.0, | |
| + 0, | |
| + 50.0, | |
| ), | |
| primary: false, | |
| shrinkWrap: true, | |
| reverse: false, | |
| scrollDirection: Axis.vertical, | |
| - separatorBuilder: (_, __) => | |
| - SizedBox(height: 12.0), | |
| builderDelegate: | |
| PagedChildBuilderDelegate< | |
| dynamic>( | |
| @@ -1991,10 +1989,10 @@ class _SearchPageWidgetState extends State<SearchPageWidget> { | |
| listViewReactionsRecordList = | |
| snapshot.data!; | |
| - return ListView.separated( | |
| + return ListView.builder( | |
| padding: EdgeInsets.fromLTRB( | |
| 0, | |
| - 12.0, | |
| + 0, | |
| 0, | |
| 50.0, | |
| ), | |
| @@ -2002,8 +2000,6 @@ class _SearchPageWidgetState extends State<SearchPageWidget> { | |
| shrinkWrap: true, | |
| scrollDirection: Axis.vertical, | |
| itemCount: listViewReactionsRecordList.length, | |
| - separatorBuilder: (_, __) => | |
| - SizedBox(height: 12.0), | |
| itemBuilder: (context, listViewIndex) { | |
| final listViewReactionsRecord = | |
| listViewReactionsRecordList[ | |
| diff --git a/lib/main.dart b/lib/main.dart | |
| index 7948191..c6d080b 100644 | |
| --- a/lib/main.dart | |
| +++ b/lib/main.dart | |
| @@ -86,6 +86,7 @@ class MyAppScrollBehavior extends MaterialScrollBehavior { | |
| class _MyAppState extends State<MyApp> { | |
| ThemeMode _themeMode = FlutterFlowTheme.themeMode; | |
| + double _textScaleFactor = 1.0; | |
| late AppStateNotifier _appStateNotifier; | |
| late GoRouter _router; | |
| @@ -136,6 +137,27 @@ class _MyAppState extends State<MyApp> { | |
| FlutterFlowTheme.saveThemeMode(mode); | |
| }); | |
| + void setTextScaleFactor(double updatedFactor) { | |
| + if (updatedFactor < FlutterFlowTheme.minTextScaleFactor || | |
| + updatedFactor > FlutterFlowTheme.maxTextScaleFactor) { | |
| + return; | |
| + } | |
| + safeSetState(() { | |
| + _textScaleFactor = updatedFactor; | |
| + }); | |
| + } | |
| + | |
| + void incrementTextScaleFactor(double incrementValue) { | |
| + final updatedFactor = _textScaleFactor + incrementValue; | |
| + if (updatedFactor < FlutterFlowTheme.minTextScaleFactor || | |
| + updatedFactor > FlutterFlowTheme.maxTextScaleFactor) { | |
| + return; | |
| + } | |
| + safeSetState(() { | |
| + _textScaleFactor = updatedFactor; | |
| + }); | |
| + } | |
| + | |
| @override | |
| Widget build(BuildContext context) { | |
| return MaterialApp.router( | |
| @@ -186,6 +208,21 @@ class _MyAppState extends State<MyApp> { | |
| ), | |
| themeMode: _themeMode, | |
| routerConfig: _router, | |
| + builder: (_, child) => MediaQuery( | |
| + data: MediaQuery.of(context).copyWith( | |
| + textScaler: | |
| + _textScaleFactor == FlutterFlowTheme.defaultTextScaleFactor | |
| + ? MediaQuery.of(context).textScaler.clamp( | |
| + minScaleFactor: FlutterFlowTheme.minTextScaleFactor, | |
| + maxScaleFactor: FlutterFlowTheme.maxTextScaleFactor, | |
| + ) | |
| + : TextScaler.linear(_textScaleFactor).clamp( | |
| + minScaleFactor: FlutterFlowTheme.minTextScaleFactor, | |
| + maxScaleFactor: FlutterFlowTheme.maxTextScaleFactor, | |
| + ), | |
| + ), | |
| + child: child!, | |
| + ), | |
| ); | |
| } | |
| } | |
| diff --git a/lib/social_media/post_feed/post_feed_widget.dart b/lib/social_media/post_feed/post_feed_widget.dart | |
| index 3118735..2f18a17 100644 | |
| --- a/lib/social_media/post_feed/post_feed_widget.dart | |
| +++ b/lib/social_media/post_feed/post_feed_widget.dart | |
| @@ -60,87 +60,60 @@ class _PostFeedWidgetState extends State<PostFeedWidget> { | |
| return Scaffold( | |
| key: scaffoldKey, | |
| backgroundColor: FlutterFlowTheme.of(context).secondaryBackground, | |
| - appBar: AppBar( | |
| - backgroundColor: FlutterFlowTheme.of(context).primaryBackground, | |
| - automaticallyImplyLeading: true, | |
| - leading: Visibility( | |
| - visible: false, | |
| - child: FlutterFlowIconButton( | |
| - borderWidth: 1.0, | |
| - buttonSize: 40.0, | |
| - icon: Icon( | |
| - Icons.arrow_back_ios, | |
| - color: FlutterFlowTheme.of(context).primaryText, | |
| - size: 25.0, | |
| + appBar: PreferredSize( | |
| + preferredSize: Size.fromHeight(64.0), | |
| + child: AppBar( | |
| + backgroundColor: FlutterFlowTheme.of(context).primaryBackground, | |
| + automaticallyImplyLeading: true, | |
| + title: Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0), | |
| + child: Stack( | |
| + children: [ | |
| + if (Theme.of(context).brightness == Brightness.dark) | |
| + Image.asset( | |
| + 'assets/images/mystage-logo-white.png', | |
| + width: 120.0, | |
| + height: 60.0, | |
| + fit: BoxFit.fitWidth, | |
| + ), | |
| + if (Theme.of(context).brightness == Brightness.light) | |
| + Image.asset( | |
| + 'assets/images/mystage-logo-black.png', | |
| + width: 120.0, | |
| + height: 60.0, | |
| + fit: BoxFit.fitWidth, | |
| + ), | |
| + ], | |
| ), | |
| - onPressed: () async { | |
| - context.safePop(); | |
| - }, | |
| ), | |
| - ), | |
| - title: Stack( | |
| - children: [ | |
| - if (Theme.of(context).brightness == Brightness.dark) | |
| - Image.asset( | |
| - 'assets/images/mystage-logo-white.png', | |
| - width: 90.0, | |
| - height: 50.0, | |
| - fit: BoxFit.fitWidth, | |
| - ), | |
| - if (Theme.of(context).brightness == Brightness.light) | |
| - Image.asset( | |
| - 'assets/images/mystage-logo-black.png', | |
| - width: 90.0, | |
| - height: 50.0, | |
| - fit: BoxFit.fitWidth, | |
| + actions: [ | |
| + Align( | |
| + alignment: AlignmentDirectional(-1.0, 0.0), | |
| + child: Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 12.0, 0.0), | |
| + child: FlutterFlowIconButton( | |
| + borderRadius: 30.0, | |
| + borderWidth: 0.0, | |
| + buttonSize: 40.0, | |
| + fillColor: FlutterFlowTheme.of(context).secondaryBackground, | |
| + icon: FaIcon( | |
| + FontAwesomeIcons.edit, | |
| + color: FlutterFlowTheme.of(context).primaryText, | |
| + size: 22.0, | |
| + ), | |
| + onPressed: () async { | |
| + if (Navigator.of(context).canPop()) { | |
| + context.pop(); | |
| + } | |
| + context.pushNamed(PostCreateWidget.routeName); | |
| + }, | |
| + ), | |
| ), | |
| + ), | |
| ], | |
| + centerTitle: false, | |
| + elevation: 0.0, | |
| ), | |
| - actions: [ | |
| - Visibility( | |
| - visible: false, | |
| - child: Padding( | |
| - padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 16.0, 0.0), | |
| - child: FlutterFlowIconButton( | |
| - borderColor: Colors.transparent, | |
| - borderRadius: 30.0, | |
| - buttonSize: 46.0, | |
| - icon: FaIcon( | |
| - FontAwesomeIcons.bell, | |
| - color: FlutterFlowTheme.of(context).primaryText, | |
| - size: 20.0, | |
| - ), | |
| - onPressed: () { | |
| - print('NotificationsButton pressed ...'); | |
| - }, | |
| - ), | |
| - ), | |
| - ), | |
| - Align( | |
| - alignment: AlignmentDirectional(-1.0, 0.0), | |
| - child: Padding( | |
| - padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 12.0, 0.0), | |
| - child: FlutterFlowIconButton( | |
| - borderRadius: 20.0, | |
| - borderWidth: 0.0, | |
| - buttonSize: 40.0, | |
| - icon: Icon( | |
| - Icons.add_to_photos_outlined, | |
| - color: FlutterFlowTheme.of(context).primaryText, | |
| - size: 30.0, | |
| - ), | |
| - onPressed: () async { | |
| - if (Navigator.of(context).canPop()) { | |
| - context.pop(); | |
| - } | |
| - context.pushNamed(PostCreateWidget.routeName); | |
| - }, | |
| - ), | |
| - ), | |
| - ), | |
| - ], | |
| - centerTitle: true, | |
| - elevation: 0.0, | |
| ), | |
| body: SafeArea( | |
| top: true, | |
| @@ -179,7 +152,12 @@ class _PostFeedWidgetState extends State<PostFeedWidget> { | |
| } | |
| return ListView.builder( | |
| - padding: EdgeInsets.zero, | |
| + padding: EdgeInsets.fromLTRB( | |
| + 0, | |
| + 0, | |
| + 0, | |
| + 50.0, | |
| + ), | |
| shrinkWrap: true, | |
| scrollDirection: Axis.vertical, | |
| itemCount: socialFeedPostsRecordList.length, | |
| @@ -187,37 +165,39 @@ class _PostFeedWidgetState extends State<PostFeedWidget> { | |
| final socialFeedPostsRecord = | |
| socialFeedPostsRecordList[socialFeedIndex]; | |
| return Container( | |
| - height: () { | |
| - if ((socialFeedPostsRecord.videoUrl != '') && | |
| - (socialFeedPostsRecord.caption != '') && | |
| - (socialFeedPostsRecord.caption.length > 50)) { | |
| - return 678.0; | |
| - } else if ((socialFeedPostsRecord.videoUrl != '') && | |
| - (socialFeedPostsRecord.caption == '')) { | |
| - return 610.0; | |
| - } else if ((socialFeedPostsRecord.imageUrl != '') && | |
| - (socialFeedPostsRecord.caption != '') && | |
| - (socialFeedPostsRecord.caption.length > 50)) { | |
| - return 568.0; | |
| - } else if ((socialFeedPostsRecord.imageUrl != '') && | |
| - (socialFeedPostsRecord.caption == '')) { | |
| - return 500.0; | |
| - } else if ((socialFeedPostsRecord.videoUrl != '') && | |
| - (socialFeedPostsRecord.caption != '') && | |
| - ((String caption) { | |
| - return caption.length <= 50; | |
| - }(socialFeedPostsRecord.caption))) { | |
| - return 656.0; | |
| - } else if ((socialFeedPostsRecord.imageUrl != '') && | |
| - (socialFeedPostsRecord.caption != '') && | |
| - ((String caption) { | |
| - return caption.length <= 50; | |
| - }(socialFeedPostsRecord.caption))) { | |
| - return 548.0; | |
| - } else { | |
| - return 310.0; | |
| - } | |
| - }(), | |
| + constraints: BoxConstraints( | |
| + minHeight: () { | |
| + if ((socialFeedPostsRecord.videoUrl != '') && | |
| + (socialFeedPostsRecord.caption != '') && | |
| + (socialFeedPostsRecord.caption.length > 50)) { | |
| + return 678.0; | |
| + } else if ((socialFeedPostsRecord.videoUrl != '') && | |
| + (socialFeedPostsRecord.caption == '')) { | |
| + return 610.0; | |
| + } else if ((socialFeedPostsRecord.imageUrl != '') && | |
| + (socialFeedPostsRecord.caption != '') && | |
| + (socialFeedPostsRecord.caption.length > 50)) { | |
| + return 568.0; | |
| + } else if ((socialFeedPostsRecord.imageUrl != '') && | |
| + (socialFeedPostsRecord.caption == '')) { | |
| + return 500.0; | |
| + } else if ((socialFeedPostsRecord.videoUrl != '') && | |
| + (socialFeedPostsRecord.caption != '') && | |
| + ((String caption) { | |
| + return caption.length <= 50; | |
| + }(socialFeedPostsRecord.caption))) { | |
| + return 656.0; | |
| + } else if ((socialFeedPostsRecord.imageUrl != '') && | |
| + (socialFeedPostsRecord.caption != '') && | |
| + ((String caption) { | |
| + return caption.length <= 50; | |
| + }(socialFeedPostsRecord.caption))) { | |
| + return 548.0; | |
| + } else { | |
| + return 100.0; | |
| + } | |
| + }(), | |
| + ), | |
| decoration: BoxDecoration(), | |
| child: Padding( | |
| padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 2.0), | |
| diff --git a/lib/social_media/posts/menus/comment_menu/comment_menu_widget.dart b/lib/social_media/posts/menus/comment_menu/comment_menu_widget.dart | |
| index f974742..09fad4a 100644 | |
| --- a/lib/social_media/posts/menus/comment_menu/comment_menu_widget.dart | |
| +++ b/lib/social_media/posts/menus/comment_menu/comment_menu_widget.dart | |
| @@ -280,7 +280,7 @@ class _CommentMenuWidgetState extends State<CommentMenuWidget> { | |
| elevation: 0.0, | |
| borderSide: BorderSide( | |
| color: FlutterFlowTheme.of(context).error, | |
| - width: 0.0, | |
| + width: 1.0, | |
| ), | |
| borderRadius: BorderRadius.circular(40.0), | |
| ), | |
| diff --git a/lib/social_media/posts/menus/post_menu_others/post_menu_others_widget.dart b/lib/social_media/posts/menus/post_menu_others/post_menu_others_widget.dart | |
| index 3a2daae..abe1275 100644 | |
| --- a/lib/social_media/posts/menus/post_menu_others/post_menu_others_widget.dart | |
| +++ b/lib/social_media/posts/menus/post_menu_others/post_menu_others_widget.dart | |
| @@ -306,7 +306,7 @@ class _PostMenuOthersWidgetState extends State<PostMenuOthersWidget> { | |
| await branchio_dynamic_linking_akp5u6_actions | |
| .generateLink( | |
| '/post/${widget.post?.reference.id}', | |
| - 'By ${widget.posterProfile?.name} @ MyStage', | |
| + 'By ${widget.posterProfile?.name} @ MyStage', | |
| (String var1) { | |
| return var1.length > 40 | |
| ? '${var1.substring(0, 40)}...' | |
| diff --git a/lib/social_media/posts/post_content/post_content_widget.dart b/lib/social_media/posts/post_content/post_content_widget.dart | |
| index d53ca3c..85f35a8 100644 | |
| --- a/lib/social_media/posts/post_content/post_content_widget.dart | |
| +++ b/lib/social_media/posts/post_content/post_content_widget.dart | |
| @@ -17,6 +17,7 @@ import 'package:ff_theme/flutter_flow/flutter_flow_theme.dart'; | |
| import 'package:flutter/material.dart'; | |
| import 'package:flutter_animate/flutter_animate.dart'; | |
| import 'package:flutter_spinkit/flutter_spinkit.dart'; | |
| +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; | |
| import 'package:google_fonts/google_fonts.dart'; | |
| import 'package:provider/provider.dart'; | |
| import 'post_content_model.dart'; | |
| @@ -102,653 +103,717 @@ class _PostContentWidgetState extends State<PostContentWidget> | |
| context.watch<FFAppState>(); | |
| context.watch<mystage_base_lib_p8jvwd_app_state.FFAppState>(); | |
| - return StreamBuilder< | |
| - List<mystage_base_lib_p8jvwd_backend.ProfileRelationshipsRecord>>( | |
| - stream: mystage_base_lib_p8jvwd_backend.queryProfileRelationshipsRecord( | |
| - queryBuilder: (profileRelationshipsRecord) => profileRelationshipsRecord | |
| - .where( | |
| - 'profile', | |
| - isEqualTo: mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| - .profileActiveRef, | |
| - ) | |
| - .where( | |
| - 'target_profile', | |
| - isEqualTo: widget.profile?.reference, | |
| - ), | |
| - singleRecord: true, | |
| - ), | |
| - builder: (context, snapshot) { | |
| - // Customize what your widget looks like when it's loading. | |
| - if (!snapshot.hasData) { | |
| - return Center( | |
| - child: SizedBox( | |
| - width: 50.0, | |
| - height: 50.0, | |
| - child: SpinKitRing( | |
| - color: FlutterFlowTheme.of(context).primary, | |
| - size: 50.0, | |
| + return Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB(12.0, 12.0, 12.0, 0.0), | |
| + child: StreamBuilder< | |
| + List<mystage_base_lib_p8jvwd_backend.ProfileRelationshipsRecord>>( | |
| + stream: mystage_base_lib_p8jvwd_backend.queryProfileRelationshipsRecord( | |
| + queryBuilder: (profileRelationshipsRecord) => | |
| + profileRelationshipsRecord | |
| + .where( | |
| + 'profile', | |
| + isEqualTo: mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| + .profileActiveRef, | |
| + ) | |
| + .where( | |
| + 'target_profile', | |
| + isEqualTo: widget.profile?.reference, | |
| + ), | |
| + singleRecord: true, | |
| + ), | |
| + builder: (context, snapshot) { | |
| + // Customize what your widget looks like when it's loading. | |
| + if (!snapshot.hasData) { | |
| + return Center( | |
| + child: SizedBox( | |
| + width: 50.0, | |
| + height: 50.0, | |
| + child: SpinKitRing( | |
| + color: FlutterFlowTheme.of(context).primary, | |
| + size: 50.0, | |
| + ), | |
| ), | |
| - ), | |
| - ); | |
| - } | |
| - List<mystage_base_lib_p8jvwd_backend.ProfileRelationshipsRecord> | |
| - userPosterRelContainerProfileRelationshipsRecordList = | |
| - snapshot.data!; | |
| - final userPosterRelContainerProfileRelationshipsRecord = | |
| - userPosterRelContainerProfileRelationshipsRecordList.isNotEmpty | |
| - ? userPosterRelContainerProfileRelationshipsRecordList.first | |
| - : null; | |
| + ); | |
| + } | |
| + List<mystage_base_lib_p8jvwd_backend.ProfileRelationshipsRecord> | |
| + userPosterRelContainerProfileRelationshipsRecordList = | |
| + snapshot.data!; | |
| + final userPosterRelContainerProfileRelationshipsRecord = | |
| + userPosterRelContainerProfileRelationshipsRecordList.isNotEmpty | |
| + ? userPosterRelContainerProfileRelationshipsRecordList.first | |
| + : null; | |
| - return Container( | |
| - width: MediaQuery.sizeOf(context).width * 1.0, | |
| - decoration: BoxDecoration( | |
| - color: FlutterFlowTheme.of(context).primaryBackground, | |
| - ), | |
| - child: StreamBuilder< | |
| - List<mystage_base_lib_p8jvwd_backend.ProfileRelationshipsRecord>>( | |
| - stream: | |
| - mystage_base_lib_p8jvwd_backend.queryProfileRelationshipsRecord( | |
| - queryBuilder: (profileRelationshipsRecord) => | |
| - profileRelationshipsRecord | |
| - .where( | |
| - 'profile', | |
| - isEqualTo: widget.profile?.reference, | |
| - ) | |
| - .where( | |
| - 'target_profile', | |
| - isEqualTo: | |
| - mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| - .profileActiveRef, | |
| - ), | |
| - singleRecord: true, | |
| + return Container( | |
| + decoration: BoxDecoration( | |
| + color: FlutterFlowTheme.of(context).primaryBackground, | |
| + borderRadius: BorderRadius.circular(18.0), | |
| ), | |
| - builder: (context, snapshot) { | |
| - // Customize what your widget looks like when it's loading. | |
| - if (!snapshot.hasData) { | |
| - return Center( | |
| - child: SizedBox( | |
| - width: 50.0, | |
| - height: 50.0, | |
| - child: SpinKitRing( | |
| - color: FlutterFlowTheme.of(context).primary, | |
| - size: 50.0, | |
| - ), | |
| - ), | |
| - ); | |
| - } | |
| - List<mystage_base_lib_p8jvwd_backend.ProfileRelationshipsRecord> | |
| - posterUserRelContainerProfileRelationshipsRecordList = | |
| - snapshot.data!; | |
| - final posterUserRelContainerProfileRelationshipsRecord = | |
| - posterUserRelContainerProfileRelationshipsRecordList | |
| - .isNotEmpty | |
| - ? posterUserRelContainerProfileRelationshipsRecordList | |
| - .first | |
| - : null; | |
| - | |
| - return Container( | |
| - decoration: BoxDecoration(), | |
| - child: StreamBuilder< | |
| - List< | |
| - mystage_base_lib_p8jvwd_backend | |
| - .ProfilePostReactionsRecord>>( | |
| - stream: mystage_base_lib_p8jvwd_backend | |
| - .queryProfilePostReactionsRecord( | |
| - queryBuilder: (profilePostReactionsRecord) => | |
| - profilePostReactionsRecord | |
| - .where( | |
| - 'profile', | |
| - isEqualTo: | |
| - mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| - .profileActiveRef, | |
| - ) | |
| - .where( | |
| - 'post', | |
| - isEqualTo: widget.post?.reference, | |
| - ), | |
| - singleRecord: true, | |
| - ), | |
| - builder: (context, snapshot) { | |
| - // Customize what your widget looks like when it's loading. | |
| - if (!snapshot.hasData) { | |
| - return Center( | |
| - child: SizedBox( | |
| - width: 50.0, | |
| - height: 50.0, | |
| - child: SpinKitRing( | |
| - color: FlutterFlowTheme.of(context).primary, | |
| - size: 50.0, | |
| - ), | |
| + child: StreamBuilder< | |
| + List< | |
| + mystage_base_lib_p8jvwd_backend | |
| + .ProfileRelationshipsRecord>>( | |
| + stream: mystage_base_lib_p8jvwd_backend | |
| + .queryProfileRelationshipsRecord( | |
| + queryBuilder: (profileRelationshipsRecord) => | |
| + profileRelationshipsRecord | |
| + .where( | |
| + 'profile', | |
| + isEqualTo: widget.profile?.reference, | |
| + ) | |
| + .where( | |
| + 'target_profile', | |
| + isEqualTo: | |
| + mystage_base_lib_p8jvwd_app_state.FFAppState() | |
| + .profileActiveRef, | |
| ), | |
| - ); | |
| - } | |
| - List< | |
| - mystage_base_lib_p8jvwd_backend | |
| - .ProfilePostReactionsRecord> | |
| - userPostReactionContainerProfilePostReactionsRecordList = | |
| - snapshot.data!; | |
| - final userPostReactionContainerProfilePostReactionsRecord = | |
| - userPostReactionContainerProfilePostReactionsRecordList | |
| - .isNotEmpty | |
| - ? userPostReactionContainerProfilePostReactionsRecordList | |
| - .first | |
| - : null; | |
| + singleRecord: true, | |
| + ), | |
| + builder: (context, snapshot) { | |
| + // Customize what your widget looks like when it's loading. | |
| + if (!snapshot.hasData) { | |
| + return Center( | |
| + child: SizedBox( | |
| + width: 50.0, | |
| + height: 50.0, | |
| + child: SpinKitRing( | |
| + color: FlutterFlowTheme.of(context).primary, | |
| + size: 50.0, | |
| + ), | |
| + ), | |
| + ); | |
| + } | |
| + List<mystage_base_lib_p8jvwd_backend.ProfileRelationshipsRecord> | |
| + posterUserRelContainerProfileRelationshipsRecordList = | |
| + snapshot.data!; | |
| + final posterUserRelContainerProfileRelationshipsRecord = | |
| + posterUserRelContainerProfileRelationshipsRecordList | |
| + .isNotEmpty | |
| + ? posterUserRelContainerProfileRelationshipsRecordList | |
| + .first | |
| + : null; | |
| - return Container( | |
| - decoration: BoxDecoration(), | |
| - child: Visibility( | |
| - visible: ((posterUserRelContainerProfileRelationshipsRecord == null) || !posterUserRelContainerProfileRelationshipsRecord.blocking) && | |
| - ((userPosterRelContainerProfileRelationshipsRecord == | |
| - null) || | |
| - !userPosterRelContainerProfileRelationshipsRecord | |
| - .blocking) && | |
| - ((userPostReactionContainerProfilePostReactionsRecord == | |
| - null) || | |
| - !userPostReactionContainerProfilePostReactionsRecord | |
| - .reported), | |
| - child: Container( | |
| - constraints: BoxConstraints( | |
| - minHeight: 140.0, | |
| + return Container( | |
| + decoration: BoxDecoration(), | |
| + child: StreamBuilder< | |
| + List< | |
| + mystage_base_lib_p8jvwd_backend | |
| + .ProfilePostReactionsRecord>>( | |
| + stream: mystage_base_lib_p8jvwd_backend | |
| + .queryProfilePostReactionsRecord( | |
| + queryBuilder: (profilePostReactionsRecord) => | |
| + profilePostReactionsRecord | |
| + .where( | |
| + 'profile', | |
| + isEqualTo: mystage_base_lib_p8jvwd_app_state | |
| + .FFAppState() | |
| + .profileActiveRef, | |
| + ) | |
| + .where( | |
| + 'post', | |
| + isEqualTo: widget.post?.reference, | |
| + ), | |
| + singleRecord: true, | |
| + ), | |
| + builder: (context, snapshot) { | |
| + // Customize what your widget looks like when it's loading. | |
| + if (!snapshot.hasData) { | |
| + return Center( | |
| + child: SizedBox( | |
| + width: 50.0, | |
| + height: 50.0, | |
| + child: SpinKitRing( | |
| + color: FlutterFlowTheme.of(context).primary, | |
| + size: 50.0, | |
| + ), | |
| ), | |
| - decoration: BoxDecoration(), | |
| - child: Column( | |
| - mainAxisSize: MainAxisSize.max, | |
| - children: [ | |
| - Row( | |
| - mainAxisSize: MainAxisSize.max, | |
| - children: [ | |
| - if (widget.onPostPage) | |
| - FlutterFlowIconButton( | |
| - borderColor: Colors.transparent, | |
| - borderRadius: 0.0, | |
| - buttonSize: 45.0, | |
| - icon: Icon( | |
| - Icons.arrow_back_ios, | |
| - color: FlutterFlowTheme.of(context) | |
| - .primaryText, | |
| - size: 25.0, | |
| - ), | |
| - onPressed: () async { | |
| - if (widget.navigateBackTo == 'feed') { | |
| - context.pushNamed( | |
| - PostFeedWidget.routeName); | |
| - } else { | |
| - await actions.forcePauseAllVideos( | |
| - context, | |
| - ); | |
| - await Future.delayed( | |
| - Duration( | |
| - milliseconds: 100, | |
| - ), | |
| - ); | |
| - context.safePop(); | |
| - } | |
| - }, | |
| - ), | |
| - Expanded( | |
| - child: InkWell( | |
| - splashColor: Colors.transparent, | |
| - focusColor: Colors.transparent, | |
| - hoverColor: Colors.transparent, | |
| - highlightColor: Colors.transparent, | |
| - onTap: () async { | |
| - await actions.forcePauseAllVideos( | |
| - context, | |
| - ); | |
| - await Future.delayed( | |
| - Duration( | |
| - milliseconds: 100, | |
| - ), | |
| - ); | |
| + ); | |
| + } | |
| + List< | |
| + mystage_base_lib_p8jvwd_backend | |
| + .ProfilePostReactionsRecord> | |
| + userPostReactionContainerProfilePostReactionsRecordList = | |
| + snapshot.data!; | |
| + final userPostReactionContainerProfilePostReactionsRecord = | |
| + userPostReactionContainerProfilePostReactionsRecordList | |
| + .isNotEmpty | |
| + ? userPostReactionContainerProfilePostReactionsRecordList | |
| + .first | |
| + : null; | |
| - context.pushNamed( | |
| - ProfileWidget.routeName, | |
| - pathParameters: { | |
| - 'profileRef': serializeParam( | |
| - widget.profile?.reference, | |
| - ParamType.DocumentReference, | |
| - ), | |
| - }.withoutNulls, | |
| - ); | |
| - }, | |
| - child: Row( | |
| - mainAxisSize: MainAxisSize.max, | |
| - mainAxisAlignment: | |
| - MainAxisAlignment.spaceBetween, | |
| - children: [ | |
| - Padding( | |
| - padding: | |
| - EdgeInsetsDirectional.fromSTEB( | |
| - 12.0, 12.0, 10.0, 8.0), | |
| - child: wrapWithModel( | |
| - model: _model.profilePictureModel, | |
| - updateCallback: () => | |
| - safeSetState(() {}), | |
| - child: ProfilePictureWidget( | |
| - photoUrl: | |
| - widget.profile?.photoUrl, | |
| - size: 35, | |
| - ), | |
| - ), | |
| + return Container( | |
| + decoration: BoxDecoration(), | |
| + child: Visibility( | |
| + visible: ((posterUserRelContainerProfileRelationshipsRecord == null) || !posterUserRelContainerProfileRelationshipsRecord.blocking) && | |
| + ((userPosterRelContainerProfileRelationshipsRecord == | |
| + null) || | |
| + !userPosterRelContainerProfileRelationshipsRecord | |
| + .blocking) && | |
| + ((userPostReactionContainerProfilePostReactionsRecord == | |
| + null) || | |
| + !userPostReactionContainerProfilePostReactionsRecord | |
| + .reported), | |
| + child: Container( | |
| + decoration: BoxDecoration(), | |
| + child: Column( | |
| + mainAxisSize: MainAxisSize.max, | |
| + children: [ | |
| + Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB( | |
| + 12.0, 12.0, 12.0, 4.0), | |
| + child: Row( | |
| + mainAxisSize: MainAxisSize.max, | |
| + children: [ | |
| + if (widget.onPostPage) | |
| + FlutterFlowIconButton( | |
| + borderColor: Colors.transparent, | |
| + borderRadius: 0.0, | |
| + buttonSize: 45.0, | |
| + icon: Icon( | |
| + Icons.arrow_back_ios, | |
| + color: FlutterFlowTheme.of(context) | |
| + .primaryText, | |
| + size: 25.0, | |
| ), | |
| - Expanded( | |
| - child: Align( | |
| - alignment: AlignmentDirectional( | |
| - -1.0, 0.0), | |
| - child: InkWell( | |
| - splashColor: Colors.transparent, | |
| - focusColor: Colors.transparent, | |
| - hoverColor: Colors.transparent, | |
| - highlightColor: | |
| - Colors.transparent, | |
| - onTap: () async { | |
| - context.pushNamed( | |
| - ProfileWidget.routeName, | |
| - pathParameters: { | |
| - 'profileRef': | |
| - serializeParam( | |
| - widget | |
| - .profile?.reference, | |
| - ParamType | |
| - .DocumentReference, | |
| - ), | |
| - }.withoutNulls, | |
| - ); | |
| - }, | |
| - child: Text( | |
| - '@${widget.profile?.profileHandleDisplay}', | |
| - style: FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .override( | |
| - font: GoogleFonts | |
| - .lexendDeca( | |
| - fontWeight: | |
| - FontWeight.normal, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - color: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .primaryText, | |
| - fontSize: 14.0, | |
| - letterSpacing: 0.0, | |
| - fontWeight: | |
| - FontWeight.normal, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - ), | |
| - ], | |
| - ), | |
| - ), | |
| - ), | |
| - Align( | |
| - alignment: AlignmentDirectional(0.0, 0.0), | |
| - child: FlutterFlowIconButton( | |
| - borderColor: Colors.transparent, | |
| - borderRadius: 30.0, | |
| - buttonSize: 46.0, | |
| - icon: Icon( | |
| - Icons.keyboard_control, | |
| - color: FlutterFlowTheme.of(context) | |
| - .primaryText, | |
| - size: 25.0, | |
| - ), | |
| - onPressed: () async { | |
| - if (widget.profile?.reference == | |
| - mystage_base_lib_p8jvwd_app_state | |
| - .FFAppState() | |
| - .profileActiveRef | |
| - ? true | |
| - : false) { | |
| - await showModalBottomSheet( | |
| - isScrollControlled: true, | |
| - backgroundColor: Colors.transparent, | |
| - enableDrag: false, | |
| - context: context, | |
| - builder: (context) { | |
| - return Padding( | |
| - padding: | |
| - MediaQuery.viewInsetsOf( | |
| - context), | |
| - child: PostMenuMineWidget( | |
| - post: widget.post!, | |
| - onPostPage: | |
| - widget.onPostPage, | |
| - profile: widget.profile!, | |
| + onPressed: () async { | |
| + if (widget.navigateBackTo == | |
| + 'feed') { | |
| + context.pushNamed( | |
| + PostFeedWidget.routeName); | |
| + } else { | |
| + await actions.forcePauseAllVideos( | |
| + context, | |
| + ); | |
| + await Future.delayed( | |
| + Duration( | |
| + milliseconds: 100, | |
| ), | |
| ); | |
| - }, | |
| - ).then( | |
| - (value) => safeSetState(() {})); | |
| - } else { | |
| - await showModalBottomSheet( | |
| - isScrollControlled: true, | |
| - backgroundColor: Colors.transparent, | |
| - enableDrag: false, | |
| - context: context, | |
| - builder: (context) { | |
| - return Padding( | |
| - padding: | |
| - MediaQuery.viewInsetsOf( | |
| - context), | |
| - child: PostMenuOthersWidget( | |
| - post: widget.post!, | |
| - posterProfile: | |
| - widget.profile!, | |
| - postReaction: | |
| - userPostReactionContainerProfilePostReactionsRecord, | |
| - onPostPage: | |
| - widget.onPostPage, | |
| - profile: widget.profile!, | |
| - ), | |
| - ); | |
| - }, | |
| - ).then( | |
| - (value) => safeSetState(() {})); | |
| - } | |
| - }, | |
| - ), | |
| - ), | |
| - ], | |
| - ), | |
| - Container( | |
| - width: MediaQuery.sizeOf(context).width * 1.0, | |
| - height: () { | |
| - if (widget.post?.videoUrl != null && | |
| - widget.post?.videoUrl != '') { | |
| - return 500.0; | |
| - } else if (widget.post?.imageUrl != null && | |
| - widget.post?.imageUrl != '') { | |
| - return 390.0; | |
| - } else { | |
| - return 200.0; | |
| - } | |
| - }(), | |
| - decoration: BoxDecoration( | |
| - gradient: LinearGradient( | |
| - colors: [ | |
| - valueOrDefault<Color>( | |
| - widget.post?.videoUrl != null && | |
| - widget.post?.videoUrl != '' | |
| - ? Colors.black | |
| - : FlutterFlowTheme.of(context) | |
| - .primary, | |
| - FlutterFlowTheme.of(context).primary, | |
| - ), | |
| - valueOrDefault<Color>( | |
| - widget.post?.videoUrl != null && | |
| - widget.post?.videoUrl != '' | |
| - ? Colors.black | |
| - : Color(0xFFE58847), | |
| - Color(0xFFE58847), | |
| - ) | |
| - ], | |
| - stops: [0.0, 1.0], | |
| - begin: AlignmentDirectional(1.0, 0.87), | |
| - end: AlignmentDirectional(-1.0, -0.87), | |
| - ), | |
| - ), | |
| - child: Stack( | |
| - alignment: AlignmentDirectional(0.0, 0.0), | |
| - children: [ | |
| - if ((widget.post?.imageUrl == null || | |
| - widget.post?.imageUrl == '') && | |
| - (widget.post?.videoUrl == null || | |
| - widget.post?.videoUrl == '') && | |
| - (widget.post?.caption != null && | |
| - widget.post?.caption != '')) | |
| - Padding( | |
| - padding: EdgeInsetsDirectional.fromSTEB( | |
| - 24.0, 70.0, 12.0, 70.0), | |
| - child: Container( | |
| - width: | |
| - MediaQuery.sizeOf(context).width * | |
| - 1.0, | |
| - decoration: BoxDecoration(), | |
| - child: Align( | |
| - alignment: | |
| - AlignmentDirectional(0.0, 0.0), | |
| - child: Text( | |
| - widget.post!.caption, | |
| - textAlign: TextAlign.center, | |
| - style: | |
| - FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .override( | |
| - font: | |
| - GoogleFonts.poppins( | |
| - fontWeight: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - fontSize: 14.0, | |
| - letterSpacing: 0.0, | |
| - fontWeight: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontWeight, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - ), | |
| - ), | |
| + context.safePop(); | |
| + } | |
| + }, | |
| ), | |
| - ), | |
| - if (widget.post?.imageUrl != null && | |
| - widget.post?.imageUrl != '') | |
| - Image.network( | |
| - widget.post!.imageUrl, | |
| - width: | |
| - MediaQuery.sizeOf(context).width * | |
| - 1.0, | |
| - height: 390.0, | |
| - fit: BoxFit.cover, | |
| - ), | |
| - if (widget.post?.videoUrl != null && | |
| - widget.post?.videoUrl != '') | |
| - custom_widgets.CustomVidPlayer( | |
| - width: | |
| - MediaQuery.sizeOf(context).width * | |
| - 1.0, | |
| - height: 500.0, | |
| - videoPath: widget.post!.videoUrl, | |
| - playPauseVideoAction: true, | |
| - looping: true, | |
| - showControls: false, | |
| - allowFullScreen: false, | |
| - allowPlayBackSpeedChanging: false, | |
| - loadingCircleColor: | |
| - FlutterFlowTheme.of(context) | |
| - .primary, | |
| - controlAudio: !FFAppState().muteAudio, | |
| - enablePlayOnFocus: true, | |
| - actualTimestamp: | |
| - (timestampSeconds) async {}, | |
| - onTap: () async { | |
| - await actions.printStatement( | |
| - 'clickly clierk', | |
| - ); | |
| - if (FFAppState().muteAudio) { | |
| - FFAppState().muteAudio = false; | |
| - safeSetState(() {}); | |
| - _model.showUnmuteIcon = true; | |
| - safeSetState(() {}); | |
| - await Future.delayed( | |
| - Duration( | |
| - milliseconds: 600, | |
| - ), | |
| - ); | |
| - _model.showUnmuteIcon = false; | |
| - safeSetState(() {}); | |
| - } else { | |
| - FFAppState().muteAudio = true; | |
| - safeSetState(() {}); | |
| - _model.showMuteIcon = true; | |
| - safeSetState(() {}); | |
| - await Future.delayed( | |
| - Duration( | |
| - milliseconds: 600, | |
| - ), | |
| - ); | |
| - _model.showMuteIcon = false; | |
| - safeSetState(() {}); | |
| - } | |
| - }, | |
| - ), | |
| - if (_model.showUnmuteIcon) | |
| - Align( | |
| - alignment: | |
| - AlignmentDirectional(0.0, 0.0), | |
| - child: Icon( | |
| - Icons.volume_up_rounded, | |
| - color: FlutterFlowTheme.of(context) | |
| - .primaryText, | |
| - size: 40.0, | |
| - ).animateOnPageLoad(animationsMap[ | |
| - 'iconOnPageLoadAnimation1']!), | |
| - ), | |
| - if (_model.showMuteIcon) | |
| - Icon( | |
| - Icons.volume_off_rounded, | |
| - color: FlutterFlowTheme.of(context) | |
| - .primaryText, | |
| - size: 40.0, | |
| - ).animateOnPageLoad(animationsMap[ | |
| - 'iconOnPageLoadAnimation2']!), | |
| - ], | |
| - ), | |
| - ), | |
| - Padding( | |
| - padding: EdgeInsetsDirectional.fromSTEB( | |
| - 4.0, 0.0, 12.0, 8.0), | |
| - child: Row( | |
| - mainAxisSize: MainAxisSize.max, | |
| - mainAxisAlignment: | |
| - MainAxisAlignment.spaceBetween, | |
| - children: [ | |
| - Row( | |
| - mainAxisSize: MainAxisSize.max, | |
| - children: [ | |
| - InkWell( | |
| + Expanded( | |
| + child: InkWell( | |
| splashColor: Colors.transparent, | |
| focusColor: Colors.transparent, | |
| hoverColor: Colors.transparent, | |
| highlightColor: Colors.transparent, | |
| onTap: () async { | |
| - _model.returnedPostReaction = | |
| - await action_blocks | |
| - .returnProfilePostReaction( | |
| + await actions.forcePauseAllVideos( | |
| context, | |
| - knownReaction: | |
| - userPostReactionContainerProfilePostReactionsRecord, | |
| - post: widget.post?.reference, | |
| ); | |
| - if (_model.returnedPostReaction | |
| - ?.reaction != | |
| - null && | |
| - _model.returnedPostReaction | |
| - ?.reaction != | |
| - '') { | |
| - await _model.returnedPostReaction! | |
| - .reference | |
| - .update({ | |
| - ...mapToFirestore( | |
| - { | |
| - 'updated_time': FieldValue | |
| - .serverTimestamp(), | |
| - 'reaction': | |
| - FieldValue.delete(), | |
| - }, | |
| - ), | |
| - }); | |
| - } else { | |
| - await _model.returnedPostReaction! | |
| - .reference | |
| - .update({ | |
| - ...mystage_base_lib_p8jvwd_backend | |
| - .createProfilePostReactionsRecordData( | |
| - reaction: '❤️', | |
| - ), | |
| - ...mapToFirestore( | |
| - { | |
| - 'updated_time': FieldValue | |
| - .serverTimestamp(), | |
| - }, | |
| - ), | |
| - }); | |
| - } | |
| + await Future.delayed( | |
| + Duration( | |
| + milliseconds: 100, | |
| + ), | |
| + ); | |
| - safeSetState(() {}); | |
| + context.pushNamed( | |
| + ProfileWidget.routeName, | |
| + pathParameters: { | |
| + 'profileRef': serializeParam( | |
| + widget.profile?.reference, | |
| + ParamType.DocumentReference, | |
| + ), | |
| + }.withoutNulls, | |
| + ); | |
| }, | |
| child: Row( | |
| - mainAxisSize: MainAxisSize.min, | |
| + mainAxisSize: MainAxisSize.max, | |
| + mainAxisAlignment: | |
| + MainAxisAlignment.spaceBetween, | |
| children: [ | |
| - Stack( | |
| - children: [ | |
| - if ((userPostReactionContainerProfilePostReactionsRecord != | |
| - null) && | |
| - (userPostReactionContainerProfilePostReactionsRecord | |
| - .reaction != | |
| - '')) | |
| - Padding( | |
| - padding: | |
| - EdgeInsets.all(8.0), | |
| - child: Icon( | |
| - Icons.favorite_rounded, | |
| - color: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .primary, | |
| - size: 24.0, | |
| - ), | |
| - ), | |
| - if ((userPostReactionContainerProfilePostReactionsRecord == | |
| - null) || | |
| - (userPostReactionContainerProfilePostReactionsRecord | |
| - .reaction == | |
| - '')) | |
| - Padding( | |
| - padding: | |
| - EdgeInsets.all(8.0), | |
| - child: Icon( | |
| - Icons | |
| - .favorite_border_rounded, | |
| - color: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .primaryText, | |
| - size: 24.0, | |
| - ), | |
| - ), | |
| - ], | |
| + Padding( | |
| + padding: EdgeInsetsDirectional | |
| + .fromSTEB( | |
| + 0.0, 0.0, 8.0, 0.0), | |
| + child: wrapWithModel( | |
| + model: _model | |
| + .profilePictureModel, | |
| + updateCallback: () => | |
| + safeSetState(() {}), | |
| + child: ProfilePictureWidget( | |
| + photoUrl: widget | |
| + .profile?.photoUrl, | |
| + size: 35, | |
| + ), | |
| + ), | |
| ), | |
| + Expanded( | |
| + child: InkWell( | |
| + splashColor: | |
| + Colors.transparent, | |
| + focusColor: | |
| + Colors.transparent, | |
| + hoverColor: | |
| + Colors.transparent, | |
| + highlightColor: | |
| + Colors.transparent, | |
| + onTap: () async { | |
| + context.pushNamed( | |
| + ProfileWidget.routeName, | |
| + pathParameters: { | |
| + 'profileRef': | |
| + serializeParam( | |
| + widget.profile | |
| + ?.reference, | |
| + ParamType | |
| + .DocumentReference, | |
| + ), | |
| + }.withoutNulls, | |
| + ); | |
| + }, | |
| + child: Text( | |
| + valueOrDefault<String>( | |
| + widget.profile | |
| + ?.profileHandleDisplay, | |
| + 'display username', | |
| + ), | |
| + style: FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .override( | |
| + font: GoogleFonts | |
| + .poppins( | |
| + fontWeight: | |
| + FontWeight.w600, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + color: FlutterFlowTheme | |
| + .of(context) | |
| + .primaryText, | |
| + fontSize: 14.0, | |
| + letterSpacing: 0.0, | |
| + fontWeight: | |
| + FontWeight.w600, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| + ), | |
| + FlutterFlowIconButton( | |
| + borderRadius: 30.0, | |
| + icon: Icon( | |
| + Icons.keyboard_control, | |
| + color: FlutterFlowTheme.of(context) | |
| + .primaryText, | |
| + size: 30.0, | |
| + ), | |
| + onPressed: () async { | |
| + if (widget.profile?.reference == | |
| + mystage_base_lib_p8jvwd_app_state | |
| + .FFAppState() | |
| + .profileActiveRef | |
| + ? true | |
| + : false) { | |
| + await showModalBottomSheet( | |
| + isScrollControlled: true, | |
| + backgroundColor: | |
| + Colors.transparent, | |
| + enableDrag: false, | |
| + context: context, | |
| + builder: (context) { | |
| + return Padding( | |
| + padding: | |
| + MediaQuery.viewInsetsOf( | |
| + context), | |
| + child: PostMenuMineWidget( | |
| + post: widget.post!, | |
| + onPostPage: | |
| + widget.onPostPage, | |
| + profile: widget.profile!, | |
| + ), | |
| + ); | |
| + }, | |
| + ).then( | |
| + (value) => safeSetState(() {})); | |
| + } else { | |
| + await showModalBottomSheet( | |
| + isScrollControlled: true, | |
| + backgroundColor: | |
| + Colors.transparent, | |
| + enableDrag: false, | |
| + context: context, | |
| + builder: (context) { | |
| + return Padding( | |
| + padding: | |
| + MediaQuery.viewInsetsOf( | |
| + context), | |
| + child: PostMenuOthersWidget( | |
| + post: widget.post!, | |
| + posterProfile: | |
| + widget.profile!, | |
| + postReaction: | |
| + userPostReactionContainerProfilePostReactionsRecord, | |
| + onPostPage: | |
| + widget.onPostPage, | |
| + profile: widget.profile!, | |
| + ), | |
| + ); | |
| + }, | |
| + ).then( | |
| + (value) => safeSetState(() {})); | |
| + } | |
| + }, | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| + if ((widget.post?.imageUrl != null && | |
| + widget.post?.imageUrl != '') || | |
| + (widget.post?.videoUrl != null && | |
| + widget.post?.videoUrl != '')) | |
| + Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB( | |
| + 12.0, | |
| + 0.0, | |
| + 12.0, | |
| + valueOrDefault<double>( | |
| + widget.post?.caption != null && | |
| + widget.post?.caption != '' | |
| + ? 8.0 | |
| + : 0.0, | |
| + 0.0, | |
| + )), | |
| + child: ClipRRect( | |
| + borderRadius: BorderRadius.circular(16.0), | |
| + child: Container( | |
| + height: () { | |
| + if (widget.post?.videoUrl != null && | |
| + widget.post?.videoUrl != '') { | |
| + return 500.0; | |
| + } else if (widget.post?.imageUrl != | |
| + null && | |
| + widget.post?.imageUrl != '') { | |
| + return 390.0; | |
| + } else { | |
| + return 0.0; | |
| + } | |
| + }(), | |
| + decoration: BoxDecoration( | |
| + color: FlutterFlowTheme.of(context) | |
| + .tertiary, | |
| + borderRadius: | |
| + BorderRadius.circular(16.0), | |
| + ), | |
| + child: Stack( | |
| + alignment: | |
| + AlignmentDirectional(0.0, 0.0), | |
| + children: [ | |
| + if (widget.post?.imageUrl != | |
| + null && | |
| + widget.post?.imageUrl != '') | |
| + Image.network( | |
| + widget.post!.imageUrl, | |
| + width: | |
| + MediaQuery.sizeOf(context) | |
| + .width * | |
| + 1.0, | |
| + height: 390.0, | |
| + fit: BoxFit.cover, | |
| + ), | |
| + if (widget.post?.videoUrl != | |
| + null && | |
| + widget.post?.videoUrl != '') | |
| + custom_widgets.CustomVidPlayer( | |
| + width: | |
| + MediaQuery.sizeOf(context) | |
| + .width * | |
| + 1.0, | |
| + height: 500.0, | |
| + videoPath: | |
| + widget.post!.videoUrl, | |
| + playPauseVideoAction: true, | |
| + looping: true, | |
| + showControls: false, | |
| + allowFullScreen: false, | |
| + allowPlayBackSpeedChanging: | |
| + false, | |
| + loadingCircleColor: | |
| + FlutterFlowTheme.of(context) | |
| + .primary, | |
| + controlAudio: | |
| + !FFAppState().muteAudio, | |
| + enablePlayOnFocus: true, | |
| + actualTimestamp: | |
| + (timestampSeconds) async {}, | |
| + onTap: () async { | |
| + await actions.printStatement( | |
| + 'clickly clierk', | |
| + ); | |
| + if (FFAppState().muteAudio) { | |
| + FFAppState().muteAudio = | |
| + false; | |
| + safeSetState(() {}); | |
| + _model.showUnmuteIcon = | |
| + true; | |
| + safeSetState(() {}); | |
| + await Future.delayed( | |
| + Duration( | |
| + milliseconds: 600, | |
| + ), | |
| + ); | |
| + _model.showUnmuteIcon = | |
| + false; | |
| + safeSetState(() {}); | |
| + } else { | |
| + FFAppState().muteAudio = | |
| + true; | |
| + safeSetState(() {}); | |
| + _model.showMuteIcon = true; | |
| + safeSetState(() {}); | |
| + await Future.delayed( | |
| + Duration( | |
| + milliseconds: 600, | |
| + ), | |
| + ); | |
| + _model.showMuteIcon = false; | |
| + safeSetState(() {}); | |
| + } | |
| + }, | |
| + ), | |
| + if (_model.showUnmuteIcon) | |
| Align( | |
| alignment: AlignmentDirectional( | |
| - -1.0, 0.0), | |
| - child: Container( | |
| + 0.0, 0.0), | |
| + child: Icon( | |
| + Icons.volume_up_rounded, | |
| + color: FlutterFlowTheme.of( | |
| + context) | |
| + .primaryText, | |
| + size: 40.0, | |
| + ).animateOnPageLoad(animationsMap[ | |
| + 'iconOnPageLoadAnimation1']!), | |
| + ), | |
| + if (_model.showMuteIcon) | |
| + Icon( | |
| + Icons.volume_off_rounded, | |
| + color: | |
| + FlutterFlowTheme.of(context) | |
| + .primaryText, | |
| + size: 40.0, | |
| + ).animateOnPageLoad(animationsMap[ | |
| + 'iconOnPageLoadAnimation2']!), | |
| + ], | |
| + ), | |
| + ), | |
| + ), | |
| + ), | |
| + if ((widget.post?.caption != null && | |
| + widget.post?.caption != '') && | |
| + widget.onFeedPage) | |
| + Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB( | |
| + 12.0, 0.0, 12.0, 0.0), | |
| + child: Row( | |
| + mainAxisSize: MainAxisSize.max, | |
| + children: [ | |
| + Expanded( | |
| + child: Text( | |
| + widget.post!.caption | |
| + .maybeHandleOverflow( | |
| + maxChars: 200, | |
| + replacement: '…', | |
| + ), | |
| + maxLines: 4, | |
| + style: FlutterFlowTheme.of(context) | |
| + .bodyMedium | |
| + .override( | |
| + font: GoogleFonts.poppins( | |
| + fontWeight: | |
| + FontWeight.normal, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + color: FlutterFlowTheme.of( | |
| + context) | |
| + .primaryText, | |
| + fontSize: 14.0, | |
| + letterSpacing: 0.0, | |
| + fontWeight: FontWeight.normal, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| + if ((widget.post?.caption != null && | |
| + widget.post?.caption != '') && | |
| + !widget.onFeedPage) | |
| + Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB( | |
| + 12.0, 0.0, 12.0, 0.0), | |
| + child: Row( | |
| + mainAxisSize: MainAxisSize.max, | |
| + children: [ | |
| + Expanded( | |
| + child: Text( | |
| + widget.post!.caption, | |
| + style: FlutterFlowTheme.of(context) | |
| + .bodyMedium | |
| + .override( | |
| + font: GoogleFonts.poppins( | |
| + fontWeight: | |
| + FontWeight.normal, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + color: FlutterFlowTheme.of( | |
| + context) | |
| + .primaryText, | |
| + fontSize: 14.0, | |
| + letterSpacing: 0.0, | |
| + fontWeight: FontWeight.normal, | |
| + fontStyle: | |
| + FlutterFlowTheme.of( | |
| + context) | |
| + .bodyMedium | |
| + .fontStyle, | |
| + ), | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + ), | |
| + Padding( | |
| + padding: EdgeInsetsDirectional.fromSTEB( | |
| + 12.0, 12.0, 12.0, 12.0), | |
| + child: Row( | |
| + mainAxisSize: MainAxisSize.max, | |
| + mainAxisAlignment: | |
| + MainAxisAlignment.spaceBetween, | |
| + children: [ | |
| + Row( | |
| + mainAxisSize: MainAxisSize.max, | |
| + children: [ | |
| + InkWell( | |
| + splashColor: Colors.transparent, | |
| + focusColor: Colors.transparent, | |
| + hoverColor: Colors.transparent, | |
| + highlightColor: Colors.transparent, | |
| + onTap: () async { | |
| + _model.returnedPostReaction = | |
| + await action_blocks | |
| + .returnProfilePostReaction( | |
| + context, | |
| + knownReaction: | |
| + userPostReactionContainerProfilePostReactionsRecord, | |
| + post: widget.post?.reference, | |
| + ); | |
| + if (_model.returnedPostReaction | |
| + ?.reaction != | |
| + null && | |
| + _model.returnedPostReaction | |
| + ?.reaction != | |
| + '') { | |
| + await _model | |
| + .returnedPostReaction! | |
| + .reference | |
| + .update({ | |
| + ...mapToFirestore( | |
| + { | |
| + 'updated_time': FieldValue | |
| + .serverTimestamp(), | |
| + 'reaction': | |
| + FieldValue.delete(), | |
| + }, | |
| + ), | |
| + }); | |
| + } else { | |
| + await _model | |
| + .returnedPostReaction! | |
| + .reference | |
| + .update({ | |
| + ...mystage_base_lib_p8jvwd_backend | |
| + .createProfilePostReactionsRecordData( | |
| + reaction: '❤️', | |
| + ), | |
| + ...mapToFirestore( | |
| + { | |
| + 'updated_time': FieldValue | |
| + .serverTimestamp(), | |
| + }, | |
| + ), | |
| + }); | |
| + } | |
| + | |
| + safeSetState(() {}); | |
| + }, | |
| + child: Row( | |
| + mainAxisSize: MainAxisSize.min, | |
| + children: [ | |
| + Stack( | |
| + children: [ | |
| + if ((userPostReactionContainerProfilePostReactionsRecord != | |
| + null) && | |
| + (userPostReactionContainerProfilePostReactionsRecord | |
| + .reaction != | |
| + '')) | |
| + Padding( | |
| + padding: | |
| + EdgeInsetsDirectional | |
| + .fromSTEB( | |
| + 0.0, | |
| + 0.0, | |
| + 8.0, | |
| + 0.0), | |
| + child: Icon( | |
| + Icons | |
| + .favorite_rounded, | |
| + color: FlutterFlowTheme | |
| + .of(context) | |
| + .primary, | |
| + size: 24.0, | |
| + ), | |
| + ), | |
| + if ((userPostReactionContainerProfilePostReactionsRecord == | |
| + null) || | |
| + (userPostReactionContainerProfilePostReactionsRecord | |
| + .reaction == | |
| + '')) | |
| + Padding( | |
| + padding: | |
| + EdgeInsetsDirectional | |
| + .fromSTEB( | |
| + 0.0, | |
| + 0.0, | |
| + 8.0, | |
| + 0.0), | |
| + child: Icon( | |
| + Icons | |
| + .favorite_border_rounded, | |
| + color: FlutterFlowTheme | |
| + .of(context) | |
| + .primaryText, | |
| + size: 24.0, | |
| + ), | |
| + ), | |
| + ], | |
| + ), | |
| + Container( | |
| constraints: BoxConstraints( | |
| minWidth: 24.0, | |
| maxWidth: 35.0, | |
| @@ -791,27 +856,25 @@ class _PostContentWidgetState extends State<PostContentWidget> | |
| ), | |
| ), | |
| ), | |
| - ), | |
| - ], | |
| - ), | |
| - ), | |
| - Row( | |
| - mainAxisSize: MainAxisSize.min, | |
| - children: [ | |
| - Padding( | |
| - padding: EdgeInsets.all(8.0), | |
| - child: Icon( | |
| - Icons.mode_comment_outlined, | |
| - color: | |
| - FlutterFlowTheme.of(context) | |
| - .primaryText, | |
| - size: 24.0, | |
| - ), | |
| + ], | |
| ), | |
| - Align( | |
| - alignment: AlignmentDirectional( | |
| - -1.0, 0.0), | |
| - child: Container( | |
| + ), | |
| + Row( | |
| + mainAxisSize: MainAxisSize.min, | |
| + children: [ | |
| + Padding( | |
| + padding: EdgeInsetsDirectional | |
| + .fromSTEB( | |
| + 0.0, 0.0, 8.0, 0.0), | |
| + child: FaIcon( | |
| + FontAwesomeIcons.commentAlt, | |
| + color: FlutterFlowTheme.of( | |
| + context) | |
| + .primaryText, | |
| + size: 18.0, | |
| + ), | |
| + ), | |
| + Container( | |
| constraints: BoxConstraints( | |
| minWidth: 24.0, | |
| maxWidth: 35.0, | |
| @@ -854,33 +917,17 @@ class _PostContentWidgetState extends State<PostContentWidget> | |
| ), | |
| ), | |
| ), | |
| - ), | |
| - ], | |
| - ), | |
| - ].divide(SizedBox(width: 8.0)), | |
| - ), | |
| - Row( | |
| - mainAxisSize: MainAxisSize.max, | |
| - children: [ | |
| - Text( | |
| - dateTimeFormat("relative", | |
| - widget.post!.createdTime!), | |
| - style: FlutterFlowTheme.of(context) | |
| - .bodySmall | |
| - .override( | |
| - font: GoogleFonts.poppins( | |
| - fontWeight: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodySmall | |
| - .fontWeight, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodySmall | |
| - .fontStyle, | |
| - ), | |
| - letterSpacing: 0.0, | |
| + ], | |
| + ), | |
| + ].divide(SizedBox(width: 18.0)), | |
| + ), | |
| + Text( | |
| + dateTimeFormat("relative", | |
| + widget.post!.createdTime!), | |
| + style: FlutterFlowTheme.of(context) | |
| + .bodySmall | |
| + .override( | |
| + font: GoogleFonts.poppins( | |
| fontWeight: | |
| FlutterFlowTheme.of(context) | |
| .bodySmall | |
| @@ -890,89 +937,33 @@ class _PostContentWidgetState extends State<PostContentWidget> | |
| .bodySmall | |
| .fontStyle, | |
| ), | |
| - ), | |
| - if (false) | |
| - Padding( | |
| - padding: | |
| - EdgeInsetsDirectional.fromSTEB( | |
| - 4.0, 0.0, 4.0, 0.0), | |
| - child: Icon( | |
| - Icons.ios_share, | |
| - color: | |
| + letterSpacing: 0.0, | |
| + fontWeight: | |
| FlutterFlowTheme.of(context) | |
| - .primaryText, | |
| - size: 22.0, | |
| + .bodySmall | |
| + .fontWeight, | |
| + fontStyle: | |
| + FlutterFlowTheme.of(context) | |
| + .bodySmall | |
| + .fontStyle, | |
| ), | |
| - ), | |
| - ], | |
| - ), | |
| - ], | |
| - ), | |
| - ), | |
| - Padding( | |
| - padding: EdgeInsetsDirectional.fromSTEB( | |
| - 0.0, 4.0, 0.0, 0.0), | |
| - child: Row( | |
| - mainAxisSize: MainAxisSize.max, | |
| - children: [ | |
| - if (((widget.post?.imageUrl != null && | |
| - widget.post?.imageUrl != '') || | |
| - (widget.post?.videoUrl != null && | |
| - widget.post?.videoUrl != | |
| - '')) && | |
| - (widget.post?.caption != null && | |
| - widget.post?.caption != '')) | |
| - Expanded( | |
| - child: Padding( | |
| - padding: | |
| - EdgeInsetsDirectional.fromSTEB( | |
| - 24.0, 4.0, 12.0, 24.0), | |
| - child: Text( | |
| - widget.post!.caption, | |
| - maxLines: | |
| - widget.onFeedPage ? 2 : 20, | |
| - style: FlutterFlowTheme.of(context) | |
| - .bodyMedium | |
| - .override( | |
| - font: GoogleFonts.lexendDeca( | |
| - fontWeight: | |
| - FontWeight.normal, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - color: FlutterFlowTheme.of( | |
| - context) | |
| - .primaryText, | |
| - fontSize: 14.0, | |
| - letterSpacing: 0.0, | |
| - fontWeight: FontWeight.normal, | |
| - fontStyle: | |
| - FlutterFlowTheme.of( | |
| - context) | |
| - .bodyMedium | |
| - .fontStyle, | |
| - ), | |
| - ), | |
| - ), | |
| ), | |
| - ], | |
| + ], | |
| + ), | |
| ), | |
| - ), | |
| - ], | |
| + ], | |
| + ), | |
| ), | |
| ), | |
| - ), | |
| - ); | |
| - }, | |
| - ), | |
| - ); | |
| - }, | |
| - ), | |
| - ); | |
| - }, | |
| + ); | |
| + }, | |
| + ), | |
| + ); | |
| + }, | |
| + ), | |
| + ); | |
| + }, | |
| + ), | |
| ); | |
| } | |
| } | |
| diff --git a/lib/social_media/posts/post_create/post_create_widget.dart b/lib/social_media/posts/post_create/post_create_widget.dart | |
| index f221a3e..6a02370 100644 | |
| --- a/lib/social_media/posts/post_create/post_create_widget.dart | |
| +++ b/lib/social_media/posts/post_create/post_create_widget.dart | |
| @@ -119,18 +119,18 @@ class _PostCreateWidgetState extends State<PostCreateWidget> { | |
| alignment: AlignmentDirectional(-1.0, 0.0), | |
| child: Text( | |
| 'Create Post', | |
| - style: FlutterFlowTheme.of(context).titleSmall.override( | |
| + style: FlutterFlowTheme.of(context).labelLarge.override( | |
| font: GoogleFonts.poppins( | |
| fontWeight: | |
| - FlutterFlowTheme.of(context).titleSmall.fontWeight, | |
| + FlutterFlowTheme.of(context).labelLarge.fontWeight, | |
| fontStyle: | |
| - FlutterFlowTheme.of(context).titleSmall.fontStyle, | |
| + FlutterFlowTheme.of(context).labelLarge.fontStyle, | |
| ), | |
| letterSpacing: 0.0, | |
| fontWeight: | |
| - FlutterFlowTheme.of(context).titleSmall.fontWeight, | |
| + FlutterFlowTheme.of(context).labelLarge.fontWeight, | |
| fontStyle: | |
| - FlutterFlowTheme.of(context).titleSmall.fontStyle, | |
| + FlutterFlowTheme.of(context).labelLarge.fontStyle, | |
| ), | |
| ), | |
| ), | |
| diff --git a/pubspec.yaml b/pubspec.yaml | |
| index 4660e4a..b30b9fe 100644 | |
| --- a/pubspec.yaml | |
| +++ b/pubspec.yaml | |
| @@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev | |
| # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. | |
| # Read more about iOS versioning at | |
| # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | |
| -version: 0.4.19+1 | |
| +version: 0.4.20+1 | |
| environment: | |
| sdk: ">=3.0.0 <4.0.0" | |
| @@ -48,9 +48,9 @@ dependencies: | |
| easy_debounce: 2.0.1 | |
| expandable: 5.0.1 | |
| ff_commons: | |
| - path: ./dependencies/ff_commons # 0.4.19+1 | |
| + path: ./dependencies/ff_commons # 0.4.20+1 | |
| ff_theme: | |
| - path: ./dependencies/ff_theme # 0.4.19+1 | |
| + path: ./dependencies/ff_theme # 0.4.20+1 | |
| file_picker: 10.1.9 | |
| firebase_analytics: 11.5.0 | |
| firebase_analytics_platform_interface: 4.4.0 | |
| @@ -92,6 +92,7 @@ dependencies: | |
| google_api_headers: 4.5.3 | |
| google_fonts: 6.1.0 | |
| google_maps: 8.1.1 | |
| + google_maps_cluster_manager: ^3.1.0 | |
| google_maps_flutter: 2.12.2 | |
| google_maps_flutter_android: 2.16.1 | |
| google_maps_flutter_ios: 2.15.2 | |
| @@ -155,6 +156,7 @@ dependencies: | |
| sign_in_with_apple_platform_interface: 2.0.0 | |
| sign_in_with_apple_web: 3.0.0 | |
| simple_gradient_text: 1.2.3 | |
| + smooth_page_indicator: 1.1.0 | |
| sqflite: 2.3.3+1 | |
| sqflite_common: 2.5.4+3 | |
| sticky_headers: 0.3.0+2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment