event activity page added.
							parent
							
								
									6e3fc55fde
								
							
						
					
					
						commit
						75ba1283d3
					
				| @ -0,0 +1,112 @@ | ||||
| import 'package:cached_network_image/cached_network_image.dart'; | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_svg/flutter_svg.dart'; | ||||
| import 'package:mohem_flutter_app/app_state/app_state.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/classes/consts.dart'; | ||||
| import 'package:mohem_flutter_app/classes/decorations_helper.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/main.dart'; | ||||
| import 'package:mohem_flutter_app/models/marathon/marathon_model.dart'; | ||||
| import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; | ||||
| import 'package:provider/provider.dart'; | ||||
| import 'package:shimmer/shimmer.dart'; | ||||
| 
 | ||||
| class ActivityEventDetailsCard extends StatelessWidget { | ||||
|   final DashboardProviderModel model; | ||||
| 
 | ||||
|   const ActivityEventDetailsCard({Key? key, required this.model}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Column( | ||||
|         crossAxisAlignment: CrossAxisAlignment.start, | ||||
|         children: [ | ||||
|       Container( | ||||
|       width: double.infinity, | ||||
|       decoration: MyDecorations.shadowDecoration, | ||||
|       child: Column( | ||||
|         crossAxisAlignment: CrossAxisAlignment.start, | ||||
|         children: <Widget>[ | ||||
|           CachedNetworkImage( | ||||
|             imageUrl: model.eventActivity!.detailImageURL!, | ||||
|             placeholder: (BuildContext context, String url) =>  const LinearProgressIndicator( | ||||
|               value: 0.7, | ||||
|                minHeight: 200, | ||||
|               valueColor: AlwaysStoppedAnimation<Color>(Colors.white), | ||||
|               backgroundColor: Color(0xff196D73), | ||||
|             ).toShimmer(), | ||||
|             fit: BoxFit.cover,width: double.infinity , | ||||
|           ), | ||||
| 
 | ||||
|         ], | ||||
|       ), | ||||
|     ), | ||||
|       Column( | ||||
|         crossAxisAlignment: CrossAxisAlignment.start, | ||||
|         children: [ | ||||
|           const SizedBox(height: 20,), | ||||
|           Text( | ||||
|             displayLocalizedContent( | ||||
|               isPhoneLangArabic: AppState().isArabic(context), | ||||
|               selectedLanguage: 3, | ||||
|               englishContent: model.eventActivity?.titleEn ?? "", | ||||
|               arabicContent: model.eventActivity?.titleAr ?? "", | ||||
|             ), | ||||
|             style: TextStyle( | ||||
|               fontStyle: FontStyle.italic, | ||||
|               fontSize: isTablet ? 30 : 20, | ||||
|               fontWeight: FontWeight.bold, | ||||
|               color:const Color(0xff3C3838), | ||||
|               // height: 42 / 30, | ||||
|             ), | ||||
| 
 | ||||
|           ).paddingOnly(left: 10, right: 10, bottom: 2), | ||||
| 
 | ||||
|         Row(children:[ | ||||
|           SvgPicture.asset("assets/images/highlight.svg"), | ||||
|         Text( | ||||
|             displayLocalizedContent( | ||||
|               isPhoneLangArabic: AppState().isArabic(context), | ||||
|               selectedLanguage: 3, | ||||
|               englishContent: model.eventActivity?.shortDescEn ?? "", | ||||
|               arabicContent: model.eventActivity?.shortDescAr ?? "", | ||||
|             ), | ||||
|             style: TextStyle( | ||||
|               fontStyle: FontStyle.italic, | ||||
|               fontSize: isTablet ? 20 : 14, | ||||
|               fontWeight: FontWeight.bold, | ||||
|               color:const Color(0xff2BB8A8), | ||||
|               // height: 32 / 24, | ||||
|             ), | ||||
| 
 | ||||
|           ).paddingOnly(left: 10, right: 10) | ||||
|     ]).paddingOnly(bottom: 25), | ||||
| 
 | ||||
|           LocaleKeys.about.tr().toText16(color: const Color(0xff3C3838)).paddingOnly(bottom: 5), | ||||
|           Text( | ||||
|             displayLocalizedContent( | ||||
|               isPhoneLangArabic: AppState().isArabic(context), | ||||
|               selectedLanguage: 3, | ||||
|               englishContent: model.eventActivity?.longDescEn ?? "", | ||||
|               arabicContent: model.eventActivity?.longDescAr ?? "", | ||||
|             ), | ||||
|             style: TextStyle( | ||||
|               fontStyle: FontStyle.italic, | ||||
|               fontSize: isTablet ? 18 : 12, | ||||
|               fontWeight: FontWeight.bold, | ||||
|               color:const Color(0xff3C3838), | ||||
|               // height: 32 / 24, | ||||
|             ), | ||||
| 
 | ||||
|           ).paddingOnly(bottom: 10) | ||||
|         ], | ||||
|       ) | ||||
|     ]); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,39 @@ | ||||
| // ignore_for_file: always_specify_types | ||||
| 
 | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:mohem_flutter_app/app_state/app_state.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/main.dart'; | ||||
| import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; | ||||
| import 'package:mohem_flutter_app/widgets/button/default_button.dart'; | ||||
| import 'package:url_launcher/url_launcher.dart'; | ||||
| 
 | ||||
| class ActivityEventFooter extends StatelessWidget { | ||||
|   final DashboardProviderModel provider; | ||||
| 
 | ||||
|   const ActivityEventFooter({ | ||||
|     Key? key, | ||||
|     required this.provider, | ||||
|   }) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Column(children: [ | ||||
|         DefaultButton( | ||||
|         LocaleKeys.start.tr(), | ||||
|     () => launchUrl(Uri.parse(provider.eventActivity!.url!)), | ||||
|     color: MyColors.greenColor, | ||||
|     ).insideContainer, | ||||
| 
 | ||||
|     ]); | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,49 @@ | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/marathon_details_card.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/marathon_footer.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/marathon_timer_card.dart'; | ||||
| import 'package:mohem_flutter_app/ui/screens/event_activity/activity_event_card.dart'; | ||||
| import 'package:mohem_flutter_app/ui/screens/event_activity/activity_footer.dart'; | ||||
| import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; | ||||
| import 'package:provider/provider.dart'; | ||||
| 
 | ||||
| class EventActivityScreen extends StatelessWidget { | ||||
|   const EventActivityScreen({Key? key}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     DashboardProviderModel provider = context.read<DashboardProviderModel>(); | ||||
|     return Scaffold( | ||||
|       appBar: AppBarWidget( | ||||
|         context, | ||||
|         title: LocaleKeys.details.tr(), | ||||
|         onHomeTapped: () { | ||||
|           Navigator.pop(context); | ||||
| 
 | ||||
|         }, | ||||
|         onBackTapped: () { | ||||
|           Navigator.pop(context); | ||||
|         }, | ||||
|       ), | ||||
|       body: Column( | ||||
|         children: <Widget>[ | ||||
|           ListView( | ||||
|             padding: const EdgeInsets.all(21), | ||||
|             children: <Widget>[ | ||||
|              ActivityEventDetailsCard(model: provider), | ||||
|               20.height, | ||||
|             ], | ||||
|           ).expanded, | ||||
|           1.divider, | ||||
|           ActivityEventFooter(provider: provider), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in New Issue