offer and discount, do not show if api have issue.

master_eventActivity
Sikander Saleem 9 months ago
parent 9362859013
commit c35074576a

@ -9,9 +9,9 @@ class ApiConsts {
// static String baseUrl = "https://webservices.hmg.com"; // PreProd // static String baseUrl = "https://webservices.hmg.com"; // PreProd
// static String baseUrl = "https://hmgwebservices.com"; // Live server // static String baseUrl = "https://hmgwebservices.com"; // Live server
// static String baseUrl = "https://mohemm.hmg.com"; // New Live server static String baseUrl = "https://mohemm.hmg.com"; // New Live server
//
static String baseUrl = "https://uat.hmgwebservices.com"; // UAT ser343622ver // static String baseUrl = "https://uat.hmgwebservices.com"; // UAT ser343622ver
// static String baseUrl = "http://10.20.200.111:1010/"; // static String baseUrl = "http://10.20.200.111:1010/";
// static String baseUrl = "https://webservices.hmg.com"; // PreProd // static String baseUrl = "https://webservices.hmg.com"; // PreProd

@ -253,8 +253,10 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
notifyListeners(); notifyListeners();
} catch (ex) { } catch (ex) {
// Utils.hideLoading(context); // Utils.hideLoading(context);
getOffersList=[];
isOffersLoading = false;
notifyListeners(); notifyListeners();
Utils.handleException(ex, context, null); // Utils.handleException(ex, context, null);
} }
} }

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

Loading…
Cancel
Save