|  |  |  | @ -3,7 +3,6 @@ import 'dart:io'; | 
		
	
		
			
				|  |  |  |  | import 'dart:ui' as ui; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | import 'package:easy_localization/easy_localization.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter/foundation.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter/material.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter_countdown_timer/flutter_countdown_timer.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:flutter_svg/flutter_svg.dart'; | 
		
	
	
		
			
				
					|  |  |  | @ -421,103 +420,108 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb | 
		
	
		
			
				|  |  |  |  |                         ), | 
		
	
		
			
				|  |  |  |  |                       ], | 
		
	
		
			
				|  |  |  |  |                     ).paddingOnly(left: 21, right: 21, top: 7, bottom: 21), | 
		
	
		
			
				|  |  |  |  |                     Column( | 
		
	
		
			
				|  |  |  |  |                       mainAxisSize: MainAxisSize.min, | 
		
	
		
			
				|  |  |  |  |                       crossAxisAlignment: CrossAxisAlignment.start, | 
		
	
		
			
				|  |  |  |  |                       children: [ | 
		
	
		
			
				|  |  |  |  |                         Row( | 
		
	
		
			
				|  |  |  |  |                           crossAxisAlignment: CrossAxisAlignment.center, | 
		
	
		
			
				|  |  |  |  |                           children: [ | 
		
	
		
			
				|  |  |  |  |                             Expanded( | 
		
	
		
			
				|  |  |  |  |                               child: Column( | 
		
	
		
			
				|  |  |  |  |                                 crossAxisAlignment: CrossAxisAlignment.start, | 
		
	
		
			
				|  |  |  |  |                                 mainAxisSize: MainAxisSize.min, | 
		
	
		
			
				|  |  |  |  |                                 children: [ | 
		
	
		
			
				|  |  |  |  |                                   LocaleKeys.offers.tr().toText12(), | 
		
	
		
			
				|  |  |  |  |                                   Row( | 
		
	
		
			
				|  |  |  |  |                                     children: [ | 
		
	
		
			
				|  |  |  |  |                                       LocaleKeys.discounts.tr().toText24(isBold: true), | 
		
	
		
			
				|  |  |  |  |                                       6.width, | 
		
	
		
			
				|  |  |  |  |                                       Container( | 
		
	
		
			
				|  |  |  |  |                                           padding: const EdgeInsets.only(left: 8, right: 8), | 
		
	
		
			
				|  |  |  |  |                                           decoration: BoxDecoration( | 
		
	
		
			
				|  |  |  |  |                                             color: MyColors.yellowColor, | 
		
	
		
			
				|  |  |  |  |                                             borderRadius: BorderRadius.circular(10), | 
		
	
		
			
				|  |  |  |  |                                           ), | 
		
	
		
			
				|  |  |  |  |                                           child: LocaleKeys.newString.tr().toText10(isBold: true)), | 
		
	
		
			
				|  |  |  |  |                                     ], | 
		
	
		
			
				|  |  |  |  |                                   ), | 
		
	
		
			
				|  |  |  |  |                                 ], | 
		
	
		
			
				|  |  |  |  |                     Consumer<DashboardProviderModel>(builder: (BuildContext context, DashboardProviderModel model, Widget? child) { | 
		
	
		
			
				|  |  |  |  |                       if (!model.isOffersLoading && model.getOffersList.isEmpty) { | 
		
	
		
			
				|  |  |  |  |                         return const SizedBox(); | 
		
	
		
			
				|  |  |  |  |                       } | 
		
	
		
			
				|  |  |  |  |                       return Column( | 
		
	
		
			
				|  |  |  |  |                         mainAxisSize: MainAxisSize.min, | 
		
	
		
			
				|  |  |  |  |                         crossAxisAlignment: CrossAxisAlignment.start, | 
		
	
		
			
				|  |  |  |  |                         children: [ | 
		
	
		
			
				|  |  |  |  |                           Row( | 
		
	
		
			
				|  |  |  |  |                             crossAxisAlignment: CrossAxisAlignment.center, | 
		
	
		
			
				|  |  |  |  |                             children: [ | 
		
	
		
			
				|  |  |  |  |                               Expanded( | 
		
	
		
			
				|  |  |  |  |                                 child: Column( | 
		
	
		
			
				|  |  |  |  |                                   crossAxisAlignment: CrossAxisAlignment.start, | 
		
	
		
			
				|  |  |  |  |                                   mainAxisSize: MainAxisSize.min, | 
		
	
		
			
				|  |  |  |  |                                   children: [ | 
		
	
		
			
				|  |  |  |  |                                     LocaleKeys.offers.tr().toText12(), | 
		
	
		
			
				|  |  |  |  |                                     Row( | 
		
	
		
			
				|  |  |  |  |                                       children: [ | 
		
	
		
			
				|  |  |  |  |                                         LocaleKeys.discounts.tr().toText24(isBold: true), | 
		
	
		
			
				|  |  |  |  |                                         6.width, | 
		
	
		
			
				|  |  |  |  |                                         Container( | 
		
	
		
			
				|  |  |  |  |                                             padding: const EdgeInsets.only(left: 8, right: 8), | 
		
	
		
			
				|  |  |  |  |                                             decoration: BoxDecoration( | 
		
	
		
			
				|  |  |  |  |                                               color: MyColors.yellowColor, | 
		
	
		
			
				|  |  |  |  |                                               borderRadius: BorderRadius.circular(10), | 
		
	
		
			
				|  |  |  |  |                                             ), | 
		
	
		
			
				|  |  |  |  |                                             child: LocaleKeys.newString.tr().toText10(isBold: true)), | 
		
	
		
			
				|  |  |  |  |                                       ], | 
		
	
		
			
				|  |  |  |  |                                     ), | 
		
	
		
			
				|  |  |  |  |                                   ], | 
		
	
		
			
				|  |  |  |  |                                 ), | 
		
	
		
			
				|  |  |  |  |                               ), | 
		
	
		
			
				|  |  |  |  |                             ), | 
		
	
		
			
				|  |  |  |  |                             LocaleKeys.viewAllOffers.tr().toText12(isUnderLine: true).onPress(() { | 
		
	
		
			
				|  |  |  |  |                               Navigator.pushNamed(context, AppRoutes.offersAndDiscounts); | 
		
	
		
			
				|  |  |  |  |                             }) | 
		
	
		
			
				|  |  |  |  |                           ], | 
		
	
		
			
				|  |  |  |  |                         ).paddingOnly(left: 21, right: 21), | 
		
	
		
			
				|  |  |  |  |                         Consumer<DashboardProviderModel>( | 
		
	
		
			
				|  |  |  |  |                           builder: (BuildContext context, DashboardProviderModel model, Widget? child) { | 
		
	
		
			
				|  |  |  |  |                             return SizedBox( | 
		
	
		
			
				|  |  |  |  |                               height: 103 + 33, | 
		
	
		
			
				|  |  |  |  |                               child: ListView.separated( | 
		
	
		
			
				|  |  |  |  |                                   shrinkWrap: true, | 
		
	
		
			
				|  |  |  |  |                                   physics: const BouncingScrollPhysics(), | 
		
	
		
			
				|  |  |  |  |                                   padding: const EdgeInsets.only(left: 21, right: 21, top: 13), | 
		
	
		
			
				|  |  |  |  |                                   scrollDirection: Axis.horizontal, | 
		
	
		
			
				|  |  |  |  |                                   itemBuilder: (BuildContext cxt, int index) { | 
		
	
		
			
				|  |  |  |  |                                     return model.isOffersLoading | 
		
	
		
			
				|  |  |  |  |                                         ? const OffersShimmerWidget() | 
		
	
		
			
				|  |  |  |  |                                         : InkWell( | 
		
	
		
			
				|  |  |  |  |                                             onTap: () { | 
		
	
		
			
				|  |  |  |  |                                               navigateToDetails(data.getOffersList[index]); | 
		
	
		
			
				|  |  |  |  |                                             }, | 
		
	
		
			
				|  |  |  |  |                                             child: SizedBox( | 
		
	
		
			
				|  |  |  |  |                                               width: 73, | 
		
	
		
			
				|  |  |  |  |                                               child: Column( | 
		
	
		
			
				|  |  |  |  |                                                 crossAxisAlignment: CrossAxisAlignment.center, | 
		
	
		
			
				|  |  |  |  |                                                 children: [ | 
		
	
		
			
				|  |  |  |  |                                                   Container( | 
		
	
		
			
				|  |  |  |  |                                                     width: 73, | 
		
	
		
			
				|  |  |  |  |                                                     height: 73, | 
		
	
		
			
				|  |  |  |  |                                                     decoration: BoxDecoration( | 
		
	
		
			
				|  |  |  |  |                                                       color: Colors.white, | 
		
	
		
			
				|  |  |  |  |                                                       borderRadius: const BorderRadius.all( | 
		
	
		
			
				|  |  |  |  |                                                         Radius.circular(100), | 
		
	
		
			
				|  |  |  |  |                                                       ), | 
		
	
		
			
				|  |  |  |  |                                                       border: Border.all(color: MyColors.lightGreyE3Color, width: 1), | 
		
	
		
			
				|  |  |  |  |                                                     ), | 
		
	
		
			
				|  |  |  |  |                                                     child: ClipRRect( | 
		
	
		
			
				|  |  |  |  |                                                       borderRadius: const BorderRadius.all( | 
		
	
		
			
				|  |  |  |  |                                                         Radius.circular(50), | 
		
	
		
			
				|  |  |  |  |                               LocaleKeys.viewAllOffers.tr().toText12(isUnderLine: true).onPress(() { | 
		
	
		
			
				|  |  |  |  |                                 Navigator.pushNamed(context, AppRoutes.offersAndDiscounts); | 
		
	
		
			
				|  |  |  |  |                               }) | 
		
	
		
			
				|  |  |  |  |                             ], | 
		
	
		
			
				|  |  |  |  |                           ).paddingOnly(left: 21, right: 21), | 
		
	
		
			
				|  |  |  |  |                           Consumer<DashboardProviderModel>( | 
		
	
		
			
				|  |  |  |  |                             builder: (BuildContext context, DashboardProviderModel model, Widget? child) { | 
		
	
		
			
				|  |  |  |  |                               return SizedBox( | 
		
	
		
			
				|  |  |  |  |                                 height: 103 + 33, | 
		
	
		
			
				|  |  |  |  |                                 child: ListView.separated( | 
		
	
		
			
				|  |  |  |  |                                     shrinkWrap: true, | 
		
	
		
			
				|  |  |  |  |                                     physics: const BouncingScrollPhysics(), | 
		
	
		
			
				|  |  |  |  |                                     padding: const EdgeInsets.only(left: 21, right: 21, top: 13), | 
		
	
		
			
				|  |  |  |  |                                     scrollDirection: Axis.horizontal, | 
		
	
		
			
				|  |  |  |  |                                     itemBuilder: (BuildContext cxt, int index) { | 
		
	
		
			
				|  |  |  |  |                                       return model.isOffersLoading | 
		
	
		
			
				|  |  |  |  |                                           ? const OffersShimmerWidget() | 
		
	
		
			
				|  |  |  |  |                                           : InkWell( | 
		
	
		
			
				|  |  |  |  |                                               onTap: () { | 
		
	
		
			
				|  |  |  |  |                                                 navigateToDetails(data.getOffersList[index]); | 
		
	
		
			
				|  |  |  |  |                                               }, | 
		
	
		
			
				|  |  |  |  |                                               child: SizedBox( | 
		
	
		
			
				|  |  |  |  |                                                 width: 73, | 
		
	
		
			
				|  |  |  |  |                                                 child: Column( | 
		
	
		
			
				|  |  |  |  |                                                   crossAxisAlignment: CrossAxisAlignment.center, | 
		
	
		
			
				|  |  |  |  |                                                   children: [ | 
		
	
		
			
				|  |  |  |  |                                                     Container( | 
		
	
		
			
				|  |  |  |  |                                                       width: 73, | 
		
	
		
			
				|  |  |  |  |                                                       height: 73, | 
		
	
		
			
				|  |  |  |  |                                                       decoration: BoxDecoration( | 
		
	
		
			
				|  |  |  |  |                                                         color: Colors.white, | 
		
	
		
			
				|  |  |  |  |                                                         borderRadius: const BorderRadius.all( | 
		
	
		
			
				|  |  |  |  |                                                           Radius.circular(100), | 
		
	
		
			
				|  |  |  |  |                                                         ), | 
		
	
		
			
				|  |  |  |  |                                                         border: Border.all(color: MyColors.lightGreyE3Color, width: 1), | 
		
	
		
			
				|  |  |  |  |                                                       ), | 
		
	
		
			
				|  |  |  |  |                                                       child: Hero( | 
		
	
		
			
				|  |  |  |  |                                                         tag: "ItemImage" + data.getOffersList[index].offersDiscountId.toString()!, | 
		
	
		
			
				|  |  |  |  |                                                         transitionOnUserGestures: true, | 
		
	
		
			
				|  |  |  |  |                                                         child: Image.network( | 
		
	
		
			
				|  |  |  |  |                                                           data.getOffersList[index].logo ?? "", | 
		
	
		
			
				|  |  |  |  |                                                           fit: BoxFit.contain, | 
		
	
		
			
				|  |  |  |  |                                                       child: ClipRRect( | 
		
	
		
			
				|  |  |  |  |                                                         borderRadius: const BorderRadius.all( | 
		
	
		
			
				|  |  |  |  |                                                           Radius.circular(50), | 
		
	
		
			
				|  |  |  |  |                                                         ), | 
		
	
		
			
				|  |  |  |  |                                                         child: Hero( | 
		
	
		
			
				|  |  |  |  |                                                           tag: "ItemImage" + data.getOffersList[index].offersDiscountId.toString()!, | 
		
	
		
			
				|  |  |  |  |                                                           transitionOnUserGestures: true, | 
		
	
		
			
				|  |  |  |  |                                                           child: Image.network( | 
		
	
		
			
				|  |  |  |  |                                                             data.getOffersList[index].logo ?? "", | 
		
	
		
			
				|  |  |  |  |                                                             fit: BoxFit.contain, | 
		
	
		
			
				|  |  |  |  |                                                           ), | 
		
	
		
			
				|  |  |  |  |                                                         ), | 
		
	
		
			
				|  |  |  |  |                                                       ), | 
		
	
		
			
				|  |  |  |  |                                                     ), | 
		
	
		
			
				|  |  |  |  |                                                   ), | 
		
	
		
			
				|  |  |  |  |                                                   4.height, | 
		
	
		
			
				|  |  |  |  |                                                   Expanded( | 
		
	
		
			
				|  |  |  |  |                                                     child: AppState().isArabic(context) | 
		
	
		
			
				|  |  |  |  |                                                         ? data.getOffersList[index].titleAr!.toText12(isCenter: true, maxLine: 1) | 
		
	
		
			
				|  |  |  |  |                                                         : data.getOffersList[index].titleEn!.toText12(isCenter: true, maxLine: 1), | 
		
	
		
			
				|  |  |  |  |                                                   ), | 
		
	
		
			
				|  |  |  |  |                                                 ], | 
		
	
		
			
				|  |  |  |  |                                                     4.height, | 
		
	
		
			
				|  |  |  |  |                                                     Expanded( | 
		
	
		
			
				|  |  |  |  |                                                       child: AppState().isArabic(context) | 
		
	
		
			
				|  |  |  |  |                                                           ? data.getOffersList[index].titleAr!.toText12(isCenter: true, maxLine: 1) | 
		
	
		
			
				|  |  |  |  |                                                           : data.getOffersList[index].titleEn!.toText12(isCenter: true, maxLine: 1), | 
		
	
		
			
				|  |  |  |  |                                                     ), | 
		
	
		
			
				|  |  |  |  |                                                   ], | 
		
	
		
			
				|  |  |  |  |                                                 ), | 
		
	
		
			
				|  |  |  |  |                                               ), | 
		
	
		
			
				|  |  |  |  |                                             ), | 
		
	
		
			
				|  |  |  |  |                                           ); | 
		
	
		
			
				|  |  |  |  |                                   }, | 
		
	
		
			
				|  |  |  |  |                                   separatorBuilder: (BuildContext cxt, int index) => 8.width, | 
		
	
		
			
				|  |  |  |  |                                   itemCount: 9), | 
		
	
		
			
				|  |  |  |  |                             ); | 
		
	
		
			
				|  |  |  |  |                           }, | 
		
	
		
			
				|  |  |  |  |                         ), | 
		
	
		
			
				|  |  |  |  |                       ], | 
		
	
		
			
				|  |  |  |  |                     ), | 
		
	
		
			
				|  |  |  |  |                                             ); | 
		
	
		
			
				|  |  |  |  |                                     }, | 
		
	
		
			
				|  |  |  |  |                                     separatorBuilder: (BuildContext cxt, int index) => 8.width, | 
		
	
		
			
				|  |  |  |  |                                     itemCount: 9), | 
		
	
		
			
				|  |  |  |  |                               ); | 
		
	
		
			
				|  |  |  |  |                             }, | 
		
	
		
			
				|  |  |  |  |                           ), | 
		
	
		
			
				|  |  |  |  |                         ], | 
		
	
		
			
				|  |  |  |  |                       ); | 
		
	
		
			
				|  |  |  |  |                     }), | 
		
	
		
			
				|  |  |  |  |                     Container( | 
		
	
		
			
				|  |  |  |  |                       width: double.infinity, | 
		
	
		
			
				|  |  |  |  |                       padding: const EdgeInsets.only(top: 31), | 
		
	
	
		
			
				
					|  |  |  | 
 |