offers & discounts implemented

faiz_marathon_signalR_critical
haroon amjad 2 years ago
parent 028caf1379
commit 52438ce711

@ -44,6 +44,7 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
List<GetMenuEntriesList>? getMenuEntriesList; List<GetMenuEntriesList>? getMenuEntriesList;
//Offers And Discounts //Offers And Discounts
bool isOffersLoading = true;
List<OffersListModel> getOffersList = []; List<OffersListModel> getOffersList = [];
//Attendance Tracking API's & Methods //Attendance Tracking API's & Methods
@ -184,6 +185,7 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
try { try {
// Utils.showLoading(context); // Utils.showLoading(context);
getOffersList = await OffersAndDiscountsApiClient().getOffersList(0, 6); getOffersList = await OffersAndDiscountsApiClient().getOffersList(0, 6);
isOffersLoading = false;
notifyListeners(); notifyListeners();
} catch (ex) { } catch (ex) {
// Utils.hideLoading(context); // Utils.hideLoading(context);

@ -277,61 +277,65 @@ class _DashboardScreenState extends State<DashboardScreen> {
child: LocaleKeys.viewAllOffers.tr().toText12(isUnderLine: true)), child: LocaleKeys.viewAllOffers.tr().toText12(isUnderLine: true)),
], ],
).paddingOnly(left: 21, right: 21), ).paddingOnly(left: 21, right: 21),
SizedBox( Consumer<DashboardProviderModel>(
height: 103 + 33, builder: (context, model, child) {
child: ListView.separated( return SizedBox(
shrinkWrap: true, height: 103 + 33,
physics: const BouncingScrollPhysics(), child: ListView.separated(
padding: const EdgeInsets.only(left: 21, right: 21, top: 13), shrinkWrap: true,
scrollDirection: Axis.horizontal, physics: const BouncingScrollPhysics(),
itemBuilder: (cxt, index) { padding: const EdgeInsets.only(left: 21, right: 21, top: 13),
return data.getOffersList.isNotEmpty scrollDirection: Axis.horizontal,
? InkWell( itemBuilder: (cxt, index) {
onTap: () { return model.isOffersLoading
navigateToDetails(data.getOffersList[index]); ? const OffersShimmerWidget()
}, : InkWell(
child: SizedBox( onTap: () {
width: 73, navigateToDetails(data.getOffersList[index]);
child: Column( },
crossAxisAlignment: CrossAxisAlignment.center, child: SizedBox(
children: [ width: 73,
Container( child: Column(
width: 73, crossAxisAlignment: CrossAxisAlignment.center,
height: 73, children: [
decoration: BoxDecoration( Container(
borderRadius: const BorderRadius.all( width: 73,
Radius.circular(100), height: 73,
), decoration: BoxDecoration(
border: Border.all(color: MyColors.lightGreyEDColor, width: 1), borderRadius: const BorderRadius.all(
), Radius.circular(100),
child: ClipRRect( ),
borderRadius: const BorderRadius.all( border: Border.all(color: MyColors.lightGreyEDColor, width: 1),
Radius.circular(50), ),
), child: ClipRRect(
child: Hero( borderRadius: const BorderRadius.all(
tag: "ItemImage" + data.getOffersList[index].rowID!, Radius.circular(50),
transitionOnUserGestures: true, ),
child: Image.network( child: Hero(
data.getOffersList[index].bannerImage!, tag: "ItemImage" + data.getOffersList[index].rowID!,
fit: BoxFit.contain, transitionOnUserGestures: true,
child: Image.network(
data.getOffersList[index].bannerImage!,
fit: BoxFit.contain,
),
),
), ),
), ),
), 4.height,
), Expanded(
4.height, child: AppState().isArabic(context)
Expanded( ? data.getOffersList[index].titleAR!.toText12(isCenter: true, maxLine: 1)
child: AppState().isArabic(context) : data.getOffersList[index].title!.toText12(isCenter: true, maxLine: 1),
? data.getOffersList[index].titleAR!.toText12(isCenter: true, maxLine: 1) ),
: data.getOffersList[index].title!.toText12(isCenter: true, maxLine: 1), ],
), ),
], ),
), );
), },
) separatorBuilder: (cxt, index) => 8.width,
: const OffersShimmerWidget(); itemCount: 6),
}, );
separatorBuilder: (cxt, index) => 8.width, },
itemCount: 6),
), ),
], ],
), ),

Loading…
Cancel
Save