event activity page added.

mohemm_HMG_flutter_upgrade
sultan khan 9 months ago
parent 6e3fc55fde
commit 75ba1283d3

@ -613,5 +613,7 @@
"manageGroup": "إدارة المجموعة", "manageGroup": "إدارة المجموعة",
"members": "الأعضاء", "members": "الأعضاء",
"searchByUserName": "البحث بواسطة اسم المستخدم", "searchByUserName": "البحث بواسطة اسم المستخدم",
"shareScreen": "مشاركة الشاشة" "shareScreen": "مشاركة الشاشة",
"start":"يبدأ",
"about":"عن"
} }

@ -611,5 +611,7 @@
"qtyOrdered": "Qty. Ordered", "qtyOrdered": "Qty. Ordered",
"qtyReceived": "Qty. Received", "qtyReceived": "Qty. Received",
"bonusQty": "Bonus Qty.", "bonusQty": "Bonus Qty.",
"balQty": "Bal. Qty." "balQty": "Bal. Qty.",
"start":"Start",
"about":"About"
} }

@ -56,6 +56,7 @@ import 'package:mohem_flutter_app/ui/screens/announcements/announcements.dart';
import 'package:mohem_flutter_app/ui/screens/child_education/child_education_assistance.dart'; import 'package:mohem_flutter_app/ui/screens/child_education/child_education_assistance.dart';
// import 'package:mohem_flutter_app/ui/my_attendance/work_from_home_screen.dart'; // import 'package:mohem_flutter_app/ui/my_attendance/work_from_home_screen.dart';
import 'package:mohem_flutter_app/ui/screens/eit/add_eit.dart'; import 'package:mohem_flutter_app/ui/screens/eit/add_eit.dart';
import 'package:mohem_flutter_app/ui/screens/event_activity/event_activity.dart';
import 'package:mohem_flutter_app/ui/screens/items_for_sale/add_new_item_for_sale.dart'; import 'package:mohem_flutter_app/ui/screens/items_for_sale/add_new_item_for_sale.dart';
import 'package:mohem_flutter_app/ui/screens/items_for_sale/item_for_sale_detail.dart'; import 'package:mohem_flutter_app/ui/screens/items_for_sale/item_for_sale_detail.dart';
import 'package:mohem_flutter_app/ui/screens/items_for_sale/items_for_sale_home.dart'; import 'package:mohem_flutter_app/ui/screens/items_for_sale/items_for_sale_home.dart';
@ -208,6 +209,8 @@ class AppRoutes {
static const String appUpdateScreen = "/appUpdateScreen"; static const String appUpdateScreen = "/appUpdateScreen";
static const String childEducation = "/childEducation"; static const String childEducation = "/childEducation";
static const String activityScreen = "/activityScreen";
static final Map<String, WidgetBuilder> routes = { static final Map<String, WidgetBuilder> routes = {
login: (BuildContext context) => LoginScreen(), login: (BuildContext context) => LoginScreen(),
verifyLogin: (BuildContext context) => VerifyLoginScreen(), verifyLogin: (BuildContext context) => VerifyLoginScreen(),
@ -325,5 +328,6 @@ class AppRoutes {
unsafeDeviceScreen: (BuildContext context) => const UnsafeDeviceScreen(), unsafeDeviceScreen: (BuildContext context) => const UnsafeDeviceScreen(),
appUpdateScreen: (BuildContext context) => const AppUpdateScreen(), appUpdateScreen: (BuildContext context) => const AppUpdateScreen(),
childEducation: (BuildContext context) => ChildEducationAssistance(), childEducation: (BuildContext context) => ChildEducationAssistance(),
activityScreen:(BuildContext context) => const EventActivityScreen()
}; };
} }

@ -626,7 +626,9 @@ class CodegenLoader extends AssetLoader{
"manageGroup": "إدارة المجموعة", "manageGroup": "إدارة المجموعة",
"members": "الأعضاء", "members": "الأعضاء",
"searchByUserName": "البحث بواسطة اسم المستخدم", "searchByUserName": "البحث بواسطة اسم المستخدم",
"shareScreen": "مشاركة الشاشة" "shareScreen": "مشاركة الشاشة",
"start":"يبدأ",
"about":"عن"
}; };
static const Map<String,dynamic> en_US = { static const Map<String,dynamic> en_US = {
"mohemm": "Mohemm", "mohemm": "Mohemm",
@ -1240,7 +1242,9 @@ static const Map<String,dynamic> en_US = {
"qtyOrdered": "Qty. Ordered", "qtyOrdered": "Qty. Ordered",
"qtyReceived": "Qty. Received", "qtyReceived": "Qty. Received",
"bonusQty": "Bonus Qty.", "bonusQty": "Bonus Qty.",
"balQty": "Bal. Qty." "balQty": "Bal. Qty.",
"start":"Start",
"about":"About"
}; };
static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US}; static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
} }

@ -597,5 +597,6 @@ abstract class LocaleKeys {
static const members = 'members'; static const members = 'members';
static const searchByUserName = 'searchByUserName'; static const searchByUserName = 'searchByUserName';
static const shareScreen = 'shareScreen'; static const shareScreen = 'shareScreen';
static const start = 'start';
static const about ='about';
} }

@ -1,4 +1,4 @@
class EventActivityList { class EventActivityList {
EventActivityList({ EventActivityList({
required this.id, required this.id,
required this.titleEn, required this.titleEn,
@ -16,6 +16,8 @@ class EventActivityList {
required this.createdOn, required this.createdOn,
required this.modifiedBy, required this.modifiedBy,
required this.modifiedOn, required this.modifiedOn,
required this.shortImageURL,
required this.detailImageURL
}); });
final int? id; final int? id;
@ -34,7 +36,8 @@ class EventActivityList {
final String? createdOn; final String? createdOn;
final String? modifiedBy; final String? modifiedBy;
final String? modifiedOn; final String? modifiedOn;
final String? shortImageURL;
final String? detailImageURL;
factory EventActivityList.fromJson(Map<String, dynamic> json) { factory EventActivityList.fromJson(Map<String, dynamic> json) {
return EventActivityList( return EventActivityList(
id: json["ID"], id: json["ID"],
@ -53,6 +56,8 @@ class EventActivityList {
createdOn: json["CreatedOn"], createdOn: json["CreatedOn"],
modifiedBy: json["ModifiedBy"], modifiedBy: json["ModifiedBy"],
modifiedOn: json["ModifiedOn"], modifiedOn: json["ModifiedOn"],
shortImageURL: json["ShortImageURL"],
detailImageURL: json["DetailImageURL"]
); );
} }
@ -73,5 +78,7 @@ class EventActivityList {
"CreatedOn": createdOn, "CreatedOn": createdOn,
"ModifiedBy": modifiedBy, "ModifiedBy": modifiedBy,
"ModifiedOn": modifiedOn, "ModifiedOn": modifiedOn,
"DetailImageURL": detailImageURL,
"ShortImageURL" : shortImageURL
}; };
} }

@ -712,9 +712,9 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
Widget eventActivityWidget(BuildContext context) { Widget eventActivityWidget(BuildContext context) {
return (context.watch<DashboardProviderModel>().isEventLoadingLoading) return (context.watch<DashboardProviderModel>().isEventLoadingLoading)
? const MarathonBannerShimmer().paddingOnly(left: 21, right: 21, bottom: 21, top: 0) ? const MarathonBannerShimmer().paddingOnly(left: 21, right: 21, bottom: 21, top: 0)
: context.watch<DashboardProviderModel>().eventActivity == null : (context.watch<DashboardProviderModel>().eventActivity != null && context.watch<DashboardProviderModel>().eventActivity!.isActive ==true)
? const SizedBox() ? const EventActivityBanner().paddingOnly(left: 21, right: 21, bottom: 21, top: 0)
: const EventActivityBanner().paddingOnly(left: 21, right: 21, bottom: 21, top: 0); : const SizedBox();
} }
void navigateToDetails(OffersListModel offersListModelObj) { void navigateToDetails(OffersListModel offersListModelObj) {

@ -19,170 +19,11 @@ import 'package:mohem_flutter_app/ui/marathon/widgets/countdown_timer_main_scree
import 'package:mohem_flutter_app/widgets/glowy_borders/glowy_borders.dart'; import 'package:mohem_flutter_app/widgets/glowy_borders/glowy_borders.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
// It is used to pass a dummy time to test Marathon
int dummyTime = DateTime.now().millisecondsSinceEpoch + 8690; int dummyTime = DateTime.now().millisecondsSinceEpoch + 8690;
class EventActivityBanner extends StatelessWidget { class EventActivityBanner extends StatelessWidget {
const EventActivityBanner({Key? key}) : super(key: key); const EventActivityBanner({Key? key}) : super(key: key);
// Widget getUnPrivilegedMarathon(BuildContext context) {
// return Container(
// decoration: MyDecorations.shadowDecoration,
// height: isTablet ? MediaQuery.of(context).size.height * 0.17 : MediaQuery.of(context).size.height * 0.11,
// clipBehavior: Clip.antiAlias,
// child: Stack(
// children: <Widget>[
// Transform(
// alignment: Alignment.center,
// transform: Matrix4.rotationY(
// AppState().isArabic(context) ? math.pi : 0,
// ),
// child: SvgPicture.asset(
// "assets/images/marathon_banner_bg.svg",
// fit: BoxFit.fill,
// width: double.infinity,
// ),
// ),
// AppState().isArabic(context)
// ? Positioned(
// right: -15,
// top: -10,
// child: Transform.rotate(
// angle: 10,
// child: Container(
// width: isTablet ? 70 : 65,
// height: isTablet ? 40 : 32,
// color: MyColors.darkDigitColor,
// ),
// ),
// )
// : Positioned(
// left: -20,
// top: -10,
// child: Transform.rotate(
// angle: 15,
// child: Container(
// width: isTablet ? 70 : 65,
// height: isTablet ? 40 : 32,
// color: MyColors.darkDigitColor,
// ),
// ),
// ),
// SizedBox(
// width: double.infinity,
// height: double.infinity,
// child: Row(
// children: <Widget>[
// const Expanded(
// flex: 3,
// child: SizedBox(
// width: double.infinity,
// height: double.infinity,
// ),
// ),
// Expanded(
// flex: AppState().isArabic(context) ? 4 : 5,
// child: SizedBox(
// width: double.infinity,
// height: double.infinity,
// child: Row(
// mainAxisAlignment: MainAxisAlignment.start,
// children: <Widget>[
// Column(
// mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisSize: MainAxisSize.min,
// children: <Widget>[
// AppState().isArabic(context) ? 0.height : 5.height,
// Text(
// LocaleKeys.getReadyForContest.tr(),
// style: TextStyle(
// fontSize: isTablet ? 20 : 11,
// fontStyle: FontStyle.italic,
// fontWeight: FontWeight.w600,
// color: MyColors.white.withOpacity(0.83),
// letterSpacing: -0.4,
// ),
// ),
// Text(
// LocaleKeys.brainMarathon.tr(),
// style: TextStyle(
// fontStyle: FontStyle.italic,
// fontSize: isTablet ? 30 : 19,
// fontWeight: FontWeight.bold,
// color: MyColors.white.withOpacity(0.83),
// height: 32 / 22,
// ),
// ),
// ],
// ).paddingOnly(
// left: AppState().isArabic(context) ? 12 : 3,
// right: AppState().isArabic(context) ? 3 : 12,
// )
// ],
// ),
// ),
// ),
// ],
// ),
// ),
// AppState().isArabic(context)
// ? Align(
// alignment: Alignment.topRight,
// child: SizedBox(
// height: isTablet ? 30 : 20,
// width: isTablet ? 45 : 35,
// child: Transform.rotate(
// angle: math.pi / 4.5,
// child: Text(
// LocaleKeys.brainMarathon.tr(),
// textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: MyColors.white,
// fontWeight: FontWeight.bold,
// fontSize: isTablet ? 8 : 6,
// height: 1.2,
// ),
// ),
// ),
// ),
// ).paddingOnly(top: 5)
// : Align(
// alignment: Alignment.topLeft,
// child: SizedBox(
// height: isTablet ? 30 : 20,
// width: isTablet ? 45 : 35,
// child: Transform.rotate(
// angle: -math.pi / 4.5,
// child: Text(
// LocaleKeys.brainMarathon.tr(),
// textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: MyColors.kWhiteColor,
// fontWeight: FontWeight.bold,
// fontSize: isTablet ? 8 : 6,
// height: 1.2,
// ),
// ),
// ),
// ),
// ).paddingOnly(top: 5),
// Container(
// height: double.infinity,
// width: double.infinity,
// color: Colors.black.withOpacity(0.6),
// child: const Icon(
// Icons.lock_rounded,
// color: MyColors.lightGreyIconColor,
// ),
// ),
// ],
// ),
// );
// }
Widget getNoUpcomingMarathonWidget(BuildContext context) { Widget getNoUpcomingMarathonWidget(BuildContext context) {
return Container( return Container(
decoration: MyDecorations.shadowDecoration, decoration: MyDecorations.shadowDecoration,
@ -348,7 +189,7 @@ class EventActivityBanner extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
DashboardProviderModel dashboardProvider = context.read<DashboardProviderModel>(); DashboardProviderModel dashboardProvider = context.read<DashboardProviderModel>();
return Container( return SizedBox(
// decoration: BoxDecoration( // decoration: BoxDecoration(
// color: MyColors.kWhiteColor, // color: MyColors.kWhiteColor,
// borderRadius: BorderRadius.circular(8), // borderRadius: BorderRadius.circular(8),
@ -384,52 +225,46 @@ class EventActivityBanner extends StatelessWidget {
children: <Widget>[ children: <Widget>[
// Transform( // Transform(
// alignment: Alignment.center, // alignment: Alignment.center,
// transform: Matrix4.rotationY( // // transform: Matrix4.rotationY(
// AppState().isArabic(context) ? math.pi : 0, // // AppState().isArabic(context) ? math.pi : 0,
// ), // // ),
// child: SvgPicture.asset( // child:
// "assets/images/marathon_banner_bg.svg", //
// fit: BoxFit.fill,
// width: double.infinity, AppState().isArabic(context)
// ), ? Positioned(
// ), left: -15,
// AppState().isArabic(context) top: -10,
// ? Positioned( child: Transform.rotate(
// right: -15, angle: 10,
// top: -10, child: SizedBox(
// child: Transform.rotate( child: SvgPicture.asset(
// angle: 10, "assets/images/light_bulb.svg"),
// child: Container( ),
// width: isTablet ? 70 : 65, ),
// height: isTablet ? 40 : 32, )
// color: MyColors.darkDigitColor, : Positioned(
// ), right: 0,
// ), top: 10,
// ) child: Opacity(
// : Positioned( opacity: .5,
// left: -20, child: SvgPicture.asset(
// top: -10, "assets/images/light_bulb.svg",
// child: Transform.rotate( ),
// angle: 15, )),
// child: Container(
// width: isTablet ? 70 : 65,
// height: isTablet ? 40 : 32,
// color: MyColors.darkDigitColor,
// ),
// ),
// ),
SizedBox( SizedBox(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
const Expanded( Expanded(
flex: 3, flex: 3,
child: SizedBox( child: Image.network(
width: double.infinity, dashboardProvider.eventActivity?.shortImageURL ??
height: double.infinity, "",
), fit: BoxFit.cover,
), )),
Expanded( Expanded(
flex: AppState().isArabic(context) ? 4 : 5, flex: AppState().isArabic(context) ? 4 : 5,
child: SizedBox( child: SizedBox(
@ -444,16 +279,7 @@ class EventActivityBanner extends StatelessWidget {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: <Widget>[ children: <Widget>[
AppState().isArabic(context) ? 0.height : 5.height, AppState().isArabic(context) ? 0.height : 5.height,
Text(
LocaleKeys.getReadyForContest.tr(),
style: TextStyle(
fontSize: isTablet ? 20 : 11,
fontStyle: FontStyle.italic,
fontWeight: FontWeight.w600,
color: MyColors.white.withOpacity(0.83),
letterSpacing: -0.4,
),
),
Flexible( Flexible(
child: Text( child: Text(
displayLocalizedContent( displayLocalizedContent(
@ -465,17 +291,33 @@ class EventActivityBanner extends StatelessWidget {
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: TextStyle( style: TextStyle(
fontStyle: FontStyle.italic, fontStyle: FontStyle.italic,
fontSize: isTablet ? 30 : 19, fontSize: isTablet ? 25 : 16,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: MyColors.white.withOpacity(0.83), color: MyColors.white,
height: 32 / 22, height: 32 / 24,
), ),
), ),
), Text(
displayLocalizedContent(
isPhoneLangArabic: AppState().isArabic(context),
selectedLanguage: 3,
englishContent: dashboardProvider.eventActivity?.shortDescEn ?? "",
arabicContent: dashboardProvider.eventActivity?.shortDescAr ?? "",
),
style: TextStyle(
fontSize: isTablet ? 20 : 11,
fontStyle: FontStyle.italic,
fontWeight: FontWeight.w600,
color: MyColors.white,
letterSpacing: -0.5,
),
), ),
isTablet ? 10.height : 3.height,
isTablet ? 15.height : 10.height,
CountdownTimerForMainScreen( CountdownTimerForMainScreen(
timeToMarathon: DateUtil.convertStringToDateMarathon(dashboardProvider.eventActivity!.startOn!).millisecondsSinceEpoch, timeToMarathon: DateUtil.convertStringToDateMarathon(dashboardProvider.eventActivity!.startOn!).millisecondsSinceEpoch,
provider: context.read<MarathonProvider>(), provider: context.read<MarathonProvider>(),
isEvent: true,
), ),
], ],
).paddingOnly( ).paddingOnly(
@ -489,49 +331,7 @@ class EventActivityBanner extends StatelessWidget {
], ],
), ),
), ),
// AppState().isArabic(context)
// ? Align(
// alignment: Alignment.topRight,
// child: SizedBox(
// height: isTablet ? 30 : 20,
// width: isTablet ? 45 : 35,
// child: Transform.rotate(
// angle: math.pi / 4.5,
// child: Text(
// LocaleKeys.brainMarathon.tr(),
// textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: MyColors.white,
// fontWeight: FontWeight.bold,
// fontSize: isTablet ? 8 : 6,
// height: 1.2,
// ),
// ),
// ),
// ),
// ).paddingOnly(top: 5)
// : Align(
// alignment: Alignment.topLeft,
// child: SizedBox(
// height: isTablet ? 30 : 20,
// width: isTablet ? 45 : 35,
// child: Transform.rotate(
// angle: -math.pi / 4.5,
// child: Text(
// LocaleKeys.brainMarathon.tr(),
// textAlign: TextAlign.center,
// maxLines: 2,
// style: TextStyle(
// color: MyColors.kWhiteColor,
// fontWeight: FontWeight.bold,
// fontSize: isTablet ? 8 : 6,
// height: 1.2,
// ),
// ),
// ),
// ),
// ).paddingOnly(top: 5),
!AppState().isArabic(context) !AppState().isArabic(context)
? Positioned( ? Positioned(
right: 0, right: 0,
@ -551,25 +351,11 @@ class EventActivityBanner extends StatelessWidget {
), ),
], ],
).onPress(() async { ).onPress(() async {
// int remainingTimeInMinutes = DateTime.parse(dashboardProvider.eventActivity!.startOn!).difference(DateTime.now()).inMinutes; int remainingTimeInMinutes = DateUtil.convertStringToDateMarathon(dashboardProvider.eventActivity!.startOn!).difference(DateTime.now()).inMinutes;
// if (remainingTimeInMinutes > 5 && dashboardProvider.eventActivity.sponsors != null && provider.marathonDetailModel.sponsors!.isNotEmpty) { if (remainingTimeInMinutes < 0) {
// Utils.showLoading(context); Navigator.pushNamed(context, AppRoutes.activityScreen);
// try {
// await provider.initializeVideoPlayer().then((_) { }
// Utils.hideLoading(context);
// provider.startTimerForSponsorVideo();
// Navigator.pushNamed(context, AppRoutes.marathonSponsorVideoScreen);
// });
// } catch (e) {
// if (kDebugMode) {
// log("Error in VideoPlayer: ${e.toString()}");
// }
// Utils.hideLoading(context);
// Navigator.pushNamed(context, AppRoutes.marathonIntroScreen);
// }
// } else {
// Navigator.pushNamed(context, AppRoutes.marathonIntroScreen);
// }
// provider.updateLanguageAsPerMarathon(context, provider.isUpComingMarathon ? provider.marathonDetailModel : provider.demoMarathonDetailModel); // provider.updateLanguageAsPerMarathon(context, provider.isUpComingMarathon ? provider.marathonDetailModel : provider.demoMarathonDetailModel);
})), })),
), ),

@ -13,19 +13,15 @@ import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart';
class CountdownTimerForMainScreen extends StatelessWidget { class CountdownTimerForMainScreen extends StatelessWidget {
final int timeToMarathon; final int timeToMarathon;
final MarathonProvider provider; final MarathonProvider provider;
final bool isEvent;
CountdownTimerForMainScreen({ CountdownTimerForMainScreen({
Key? key, Key? key,
required this.provider, required this.provider,
required this.timeToMarathon, required this.timeToMarathon,
this.isEvent =false,
}) : super(key: key); }) : super(key: key);
final TextStyle styleTextHome = TextStyle(
color: MyColors.white.withOpacity(0.45),
fontStyle: FontStyle.italic,
fontWeight: FontWeight.w800,
letterSpacing: -0.4,
);
final TextStyle styleDigitHome = TextStyle( final TextStyle styleDigitHome = TextStyle(
height: 22 / 27, height: 22 / 27,
@ -75,7 +71,13 @@ class CountdownTimerForMainScreen extends StatelessWidget {
text, text,
minFontSize: 7, minFontSize: 7,
maxFontSize: 8, maxFontSize: 8,
style: styleTextHome, style: TextStyle(
color: isEvent ? MyColors.white : MyColors.white.withOpacity(0.45),
fontStyle: FontStyle.italic,
fontWeight: FontWeight.w800,
letterSpacing: -0.4,
),
); );
} }

@ -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…
Cancel
Save