diff --git a/assets/icons/mazaya_brand.svg b/assets/icons/mazaya_brand.svg
new file mode 100755
index 0000000..52fb265
--- /dev/null
+++ b/assets/icons/mazaya_brand.svg
@@ -0,0 +1,17 @@
+
diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json
index c4c5f20..d874779 100644
--- a/assets/langs/ar-SA.json
+++ b/assets/langs/ar-SA.json
@@ -615,5 +615,9 @@
"searchByUserName": "البحث بواسطة اسم المستخدم",
"shareScreen": "مشاركة الشاشة",
"start":"يبدأ",
- "about":"عن"
+ "about":"عن",
+ "explore": "يستكشف",
+ "mazaya": "مازيا",
+ "benefits": "فوائد",
+ "mazayaDesc": "اكتشف الخصومات والعروض الخاصة المتاحة للموظفين"
}
\ No newline at end of file
diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json
index 559b9c9..ae4dcbc 100644
--- a/assets/langs/en-US.json
+++ b/assets/langs/en-US.json
@@ -613,5 +613,10 @@
"bonusQty": "Bonus Qty.",
"balQty": "Bal. Qty.",
"start":"Start",
- "about":"About"
+ "about":"About",
+ "explore": "Explore",
+ "mazaya": "MAZAYA",
+ "benefits": "Benefits",
+ "mazayaDesc": "Discover special Discounts and offers available to Employees"
+
}
\ No newline at end of file
diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart
index 0e2cfbf..fac1d05 100644
--- a/lib/generated/codegen_loader.g.dart
+++ b/lib/generated/codegen_loader.g.dart
@@ -1,6 +1,6 @@
// DO NOT EDIT. This is code generated via package:easy_localization/generate.dart
-// ignore_for_file: prefer_single_quotes, avoid_renaming_method_parameters
+// ignore_for_file: prefer_single_quotes, avoid_renaming_method_parameters, constant_identifier_names
import 'dart:ui';
@@ -14,7 +14,7 @@ class CodegenLoader extends AssetLoader{
return Future.value(mapLocales[locale.toString()]);
}
- static const Map ar_SA = {
+ static const Map _ar_SA = {
"mohemm": "Mohemm",
"english": "English",
"arabic": "عربي",
@@ -116,6 +116,7 @@ class CodegenLoader extends AssetLoader{
"reject": "يرفض",
"approve": "يوافق",
"cancel": "إلغاء",
+ "generate": "يولد",
"requestedItems": "العناصر المطلوبة",
"request": "طلب",
"myRequest": "طلبي",
@@ -560,10 +561,9 @@ class CodegenLoader extends AssetLoader{
"missingDocuments": "مستندات مفقودة",
"uploadedDocuments": "المستندات التي تم تحميلها",
"addAtLeastOneAttachment": "الرجاء إضافة مرفق واحد على الأقل.",
- "open": "يفتح",
- "youCannotJoinTheMarathon": "لا يمكنك الانضمام إلى الماراثون لأنك تجاوزت الحد الزمني",
"pleaseClickButtonToJoinMarathon": "الرجاء الضغط على الزر أدناه للانضمام إلى الماراثون",
- "generate": "يولد",
+ "youCannotJoinTheMarathon": "لا يمكنك الانضمام إلى الماراثون لأنك تجاوزت الحد الزمني",
+ "open": "يفتح",
"paymentRequest": "طلب الدفع",
"paymentDetails": "تفاصيل الدفع",
"requestNo": "رقم الطلب",
@@ -627,10 +627,14 @@ class CodegenLoader extends AssetLoader{
"members": "الأعضاء",
"searchByUserName": "البحث بواسطة اسم المستخدم",
"shareScreen": "مشاركة الشاشة",
- "start":"يبدأ",
- "about":"عن"
+ "start": "يبدأ",
+ "about": "عن",
+ "explore": "يستكشف",
+ "mazaya": "مازيا",
+ "benefits": "فوائد",
+ "mazayaDesc": "اكتشف الخصومات والعروض الخاصة المتاحة للموظفين"
};
-static const Map en_US = {
+static const Map _en_US = {
"mohemm": "Mohemm",
"english": "English",
"arabic": "عربي",
@@ -725,6 +729,7 @@ static const Map en_US = {
"whatsapp": "Whatsapp",
"reject": "Reject",
"approve": "Approve",
+ "generate": "Generate",
"cancel": "Cancel",
"requestedItems": "Requested Items",
"request": "Request",
@@ -1197,7 +1202,6 @@ static const Map en_US = {
"pleaseClickButtonToJoinMarathon": "Press the button below to join the Marathon.",
"youCannotJoinTheMarathon": "You cannot join the Marathon because you have exceeded the time limit.",
"requesterOperatingUnit": "Requester Operating Unit",
- "generate": "Generate",
"paymentRequest": "Pay Request",
"paymentDetails": "Payment Details",
"requestNo": "Request No",
@@ -1243,8 +1247,12 @@ static const Map en_US = {
"qtyReceived": "Qty. Received",
"bonusQty": "Bonus Qty.",
"balQty": "Bal. Qty.",
- "start":"Start",
- "about":"About"
+ "start": "Start",
+ "about": "About",
+ "explore": "Explore",
+ "mazaya": "MAZAYA",
+ "benefits": "Benefits",
+ "mazayaDesc": "Discover special Discounts and offers available to Employees"
};
-static const Map> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
+static const Map> mapLocales = {"ar_SA": _ar_SA, "en_US": _en_US};
}
diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart
index f8bc858..41023f4 100644
--- a/lib/generated/locale_keys.g.dart
+++ b/lib/generated/locale_keys.g.dart
@@ -1,5 +1,7 @@
// DO NOT EDIT. This is code generated via package:easy_localization/generate.dart
+// ignore_for_file: constant_identifier_names
+
abstract class LocaleKeys {
static const mohemm = 'mohemm';
static const english = 'english';
@@ -101,6 +103,7 @@ abstract class LocaleKeys {
static const reject = 'reject';
static const approve = 'approve';
static const cancel = 'cancel';
+ static const generate = 'generate';
static const requestedItems = 'requestedItems';
static const request = 'request';
static const myRequest = 'myRequest';
@@ -530,10 +533,9 @@ abstract class LocaleKeys {
static const missingDocuments = 'missingDocuments';
static const uploadedDocuments = 'uploadedDocuments';
static const addAtLeastOneAttachment = 'addAtLeastOneAttachment';
- static const open = 'open';
- static const youCannotJoinTheMarathon = 'youCannotJoinTheMarathon';
static const pleaseClickButtonToJoinMarathon = 'pleaseClickButtonToJoinMarathon';
- static const generate = 'generate';
+ static const youCannotJoinTheMarathon = 'youCannotJoinTheMarathon';
+ static const open = 'open';
static const paymentRequest = 'paymentRequest';
static const paymentDetails = 'paymentDetails';
static const requestNo = 'requestNo';
@@ -598,5 +600,10 @@ abstract class LocaleKeys {
static const searchByUserName = 'searchByUserName';
static const shareScreen = 'shareScreen';
static const start = 'start';
- static const about ='about';
+ static const about = 'about';
+ static const explore = 'explore';
+ static const mazaya = 'mazaya';
+ static const benefits = 'benefits';
+ static const mazayaDesc = 'mazayaDesc';
+
}
diff --git a/lib/ui/landing/dashboard_screen.dart b/lib/ui/landing/dashboard_screen.dart
index 9a7c1ee..b2f819f 100644
--- a/lib/ui/landing/dashboard_screen.dart
+++ b/lib/ui/landing/dashboard_screen.dart
@@ -415,116 +415,227 @@ class _DashboardScreenState extends State with WidgetsBindingOb
),
),
9.width,
- Expanded(
- child: MenusWidget(),
- ),
+ Expanded(child: MenusWidget()),
],
),
],
).paddingOnly(left: 21, right: 21, top: 7, bottom: 21),
eventActivityWidget(context),
- Consumer(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)),
- ],
- ),
- ],
+ Consumer(
+ 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: [
+ Directionality(
+ textDirection: AppState().isArabic(context) ? ui.TextDirection.rtl : ui.TextDirection.ltr,
+ child: Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(20),
+ gradient: const LinearGradient(colors: [Color(0xFF91C481), Color(0xFF7CCED7)], begin: Alignment.centerLeft, end: Alignment.centerRight),
),
- ),
- LocaleKeys.viewAllOffers.tr().toText12(isUnderLine: true).onPress(() {
- Navigator.pushNamed(context, AppRoutes.offersAndDiscounts);
- })
- ],
- ).paddingOnly(left: 21, right: 21),
- Consumer(
- 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),
- ),
- 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),
+ child: Padding(
+ padding: const EdgeInsets.all(3.0), // This creates the border width
+ child: Container(
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(17), // Slightly less than outer radius
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Expanded(
+ flex: 4,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Row(
+ children: [
+ Expanded(
+ flex: 2,
+ child: RichText(
+ text:
+ AppState().isArabic(context)
+ ? const TextSpan(
+ children: [
+ TextSpan(
+ text: 'اطلع على مميزات',
+ style: TextStyle(fontSize: 16, letterSpacing: -0.2, fontWeight: FontWeight.w700, height: 24 / 16, color: Color(0xFF5D5E5E)),
+ ),
+ TextSpan(
+ text: ' مزايا',
+ style: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w700,
+ letterSpacing: -0.2,
+ height: 24 / 16,
+ color: Color(0xFFED1C2B), // Use your MAZAYA red color here if defined, e.g. MyColors.mazayaRed
+ ),
+ ),
+ ],
+ )
+ : TextSpan(
+ children: [
+ TextSpan(
+ text: LocaleKeys.explore.tr() + ' ',
+ style: const TextStyle(fontSize: 16, letterSpacing: -0.2, fontWeight: FontWeight.w700, height: 24 / 16, color: Color(0xFF5D5E5E)),
+ ),
+ TextSpan(
+ text: LocaleKeys.mazaya.tr(),
+ style: const TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w700,
+ letterSpacing: -0.2,
+ height: 24 / 16,
+ color: Color(0xFFED1C2B), // Use your MAZAYA red color here if defined, e.g. MyColors.mazayaRed
+ ),
+ ),
+ TextSpan(
+ text: ' ' + LocaleKeys.benefits.tr(),
+ style: const TextStyle(fontSize: 16, letterSpacing: -0.2, fontWeight: FontWeight.w700, height: 24 / 16, color: Color(0xFF5D5E5E)),
+ ),
+ ],
+ ),
),
- ],
- ),
+ ),
+ const Expanded(flex: 1, child: SizedBox()),
+ ],
),
- );
- },
- separatorBuilder: (BuildContext cxt, int index) => 8.width,
- itemCount: 9),
- );
- },
- ),
- ],
- );
- }),
+ const SizedBox(height: 8),
+ LocaleKeys.mazayaDesc.tr().toText11(color: const Color(0xFF5D5E5E)),
+ ],
+ ),
+ ),
+ Expanded(
+ flex: 2,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.end,
+ mainAxisAlignment: MainAxisAlignment.end,
+ children: [
+ SvgPicture.asset("assets/icons/mazaya_brand.svg", width: 90, height: 47),
+ const SizedBox(height: 28),
+ LocaleKeys.viewAllOffers.tr().toText12(isUnderLine: true, color: const Color(0xFF3B3D4A)).onPress(() {
+ Navigator.pushNamed(context, AppRoutes.offersAndDiscounts);
+ }),
+ ],
+ ),
+ ),
+ ],
+ ).paddingOnly(left: 21, right: 21, top: 14, bottom: 14),
+ ),
+ ),
+ ).paddingOnly(left: 21, right: 21, top: 0, bottom: 21),
+ ),
+
+ // Container(
+ // height: 121,
+ // decoration: BoxDecoration(
+ // borderRadius: BorderRadius.circular(12),
+ // border: Border.all(width: 3, color: Colors.red),
+ // ),
+ // child: Padding(padding: const EdgeInsets.all(4.0), child: Container(decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white))),
+ // ).paddingOnly(left: 21, right: 21, bottom: 21),
+
+ // 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(
+ // 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),
+ // ),
+ // 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),
+ // ),
+ // ],
+ // ),
+ // ),
+ // );
+ // },
+ // separatorBuilder: (BuildContext cxt, int index) => 8.width,
+ // itemCount: 9),
+ // );
+ // },
+ // ),
+ ],
+ );
+ },
+ ),
Container(
width: double.infinity,
padding: const EdgeInsets.only(top: 31),
diff --git a/lib/ui/screens/offers_and_discounts/offers_and_discounts_home.dart b/lib/ui/screens/offers_and_discounts/offers_and_discounts_home.dart
index fd2c19e..f67a835 100644
--- a/lib/ui/screens/offers_and_discounts/offers_and_discounts_home.dart
+++ b/lib/ui/screens/offers_and_discounts/offers_and_discounts_home.dart
@@ -39,7 +39,7 @@ class _OffersAndDiscountsHomeState extends State {
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
- appBar: AppBarWidget(context, title: LocaleKeys.offerAndDiscounts.tr(), showHomeButton: true),
+ appBar: AppBarWidget(context, title: LocaleKeys.offerAndDiscounts.tr(), showHomeButton: true, showLogo: true, logoPath: "assets/icons/mazaya_brand.svg"),
body: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
diff --git a/lib/widgets/app_bar_widget.dart b/lib/widgets/app_bar_widget.dart
index 744b7eb..d91111d 100644
--- a/lib/widgets/app_bar_widget.dart
+++ b/lib/widgets/app_bar_widget.dart
@@ -1,18 +1,23 @@
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/config/routes.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';
-AppBar AppBarWidget(BuildContext context,
- {required String title,
- bool showHomeButton = true,
- bool showWorkListSettingButton = false,
- bool showMemberButton = false,
- List? actions,
- void Function()? onHomeTapped,
- void Function()? onBackTapped}) {
+AppBar AppBarWidget(
+ BuildContext context, {
+ required String title,
+ bool showHomeButton = true,
+ bool showLogo = false,
+ String? logoPath,
+ bool showWorkListSettingButton = false,
+ bool showMemberButton = false,
+ List? actions,
+ void Function()? onHomeTapped,
+ void Function()? onBackTapped,
+}) {
return AppBar(
leadingWidth: 0,
@@ -26,8 +31,10 @@ AppBar AppBarWidget(BuildContext context,
}, context),
child: const Icon(Icons.arrow_back_ios, color: MyColors.darkIconColor),
),
+ if (showLogo) 4.width,
+ if (showLogo) SvgPicture.asset(logoPath!),
4.width,
- title.toText24(color: MyColors.darkTextColor, isBold: true).expanded,
+ if (!showLogo)title.toText24(color: MyColors.darkTextColor, isBold: true).expanded,
],
),
centerTitle: false,
@@ -55,7 +62,7 @@ AppBar AppBarWidget(BuildContext context,
},
icon: const Icon(Icons.people, color: MyColors.textMixColor),
),
- ...actions ?? []
+ ...actions ?? [],
],
);
}