Compare commits

...

1 Commits

Author SHA1 Message Date
Fatimah.Alshammari c893cd73ec fix localization and UI updates 7 days ago

@ -132,14 +132,14 @@
"insert_otp_code": "ادخل الرمز",
"type_code": "الرجاء كتابة الرمز الذي أرسلناه إلى",
"resend_code": "أعد إرسال الرمز",
"check_code": "التحقق من الشفرة",
"check_code": "التحقق من الرمز",
"time_will_expire": "إعادة إرسال الرمز بتنسيق",
"sec": "ثانية",
"providers": "الموفرون",
"appointments": "تعيينات",
"appointments": "المواعيد",
"home": "بيت",
"ads": "إعلانات",
"settings": "إعدادات",
"settings": "الإعدادات",
"view_all": "مشاهدة الكل",
"my_active_Ads": "إعلاناتي النشطة",
"recommended_ads": "الإعلانات الموصى بها",
@ -212,8 +212,8 @@
"noItemSelectedYet": "لم يتم تحديد أي عنصر بعد",
"totalAdditionalAmount": "إجمالي المبلغ الإضافي",
"sar": "ريال سعودي",
"cancel": "يلغي",
"add": "يضيف",
"cancel": "الغاء",
"add": "اضافه",
"itemsAddedSuccessfully": "تمت إضافة العناصر بنجاح",
"pleaseSelectItems": "يرجى اختيار العناصر",
"totalAmount": "المبلغ الإجمالي",
@ -226,10 +226,10 @@
"typeHere": "اكتب هنا...",
"pleaseSelectReason": "يرجى تحديد السبب",
"noAppointmentFound": "لم يتم العثور على مواعيد",
"slotsOverview": "نظرة عامة على الفتحات",
"slotsOverview": "نظرة عامة على الحجوزات",
"empty": "فارغ",
"occupied": "محجوز",
"totalSlots": "إجمالي الفتحات",
"totalSlots": "إجمالي الحجوزات",
"selectAppointments": "اختيار المواعيد",
"appointmentMergeSuccessfully": "دمج المواعيد تم بنجاح",
"updateAppointment": "تحديث الموعد",
@ -238,11 +238,11 @@
"appointmentisCompleted": "تم اكتمال الموعد",
"workStart": "بدء العمل",
"payNow": "ادفع الآن",
"arrived": "وصل",
"arrived": "تم الوصول",
"payLater": "ادفع لاحقًا",
"complete": "اكتمل",
"makeAnOffer": "قدم عرضًا",
"provideOffer": "تقديم العرض",
"provideOffer": "تقديم عرض",
"enterAmount": "أدخل المبلغ",
"submit": "إرسال",
"viewChat": "عرض الدردشة",
@ -406,7 +406,7 @@
"passwordIsStrong": "كلمة المرور الخاصة بك قوية",
"passwordVeryStrong": "كلمة المرور الخاصة بك قوية جدًا",
"selectDuration": "اختر المدة",
"daysVar": "الأيام",
"daysVar": "يوم",
"adCharges": "رسوم الإعلان",
"select": "اختر",
"deleteAdConfirmation": "هل تريد حذف الإعلان؟",
@ -655,7 +655,7 @@
"servicesNotAvailableHomeLocation": "بعض الخدمات غير متوفرة في الموقع المنزلي.",
"additionalChargesNotice": "هذه الرسوم إضافية على رسوم الخدمة الفعلية. قد تختلف الرسوم للعناصر الثقيلة.",
"selectServiceLocation": "اختر موقع الخدمة",
"apptOn": "التعيين في",
"apptOn": "الموعد في",
"merged": "مُدمج",
"date": "التاريخ",
"selectAll": "اختر الكل",
@ -817,13 +817,74 @@
"specialRequestsChats": "دردشات الطلبات الخاصة",
"selectDeliveryOption": "اختر خيار التوصيل",
"deliveryOptions": "خيارات التوصيل",
"selfPickup": "الالتقاط الذاتي",
"selfPickup": "استلام ذاتي",
"updateYourLocationInfo": "قم بتحديث معلومات موقعك",
"initiateSelfPickup": "بدء الاستلام الذاتي",
"selfPickupStatus": "حالة الالتقاط الذاتي",
"selfPickupStatus": "حالة الاستلام الذاتي",
"myDraftAds": "مسودتي للإعلانات",
"scheduleDeletedSuccessfully": "تم حذف الجدول بنجاح",
"addValidAddress": "رجى إضافة عنوان صالح",
"termsPrivacyPolicy": "الشروط وسياسة الخصوصية"
"termsPrivacyPolicy": "الشروط وسياسة الخصوصية",
"pendingApproval": "قيد الموافقة",
"inReview": "قيد المراجعة",
"rejected": "مرفوض",
"deactivated": "معطل",
"blocked": "محظور",
"allRequests": "جميع الطلبات",
"pending": "قيد الانتظار",
"preparingToCollect": "جاري التحضير للاستلام",
"readyToCollect": "جاهز للاستلام",
"collected": "تم الاستلام",
"initiated": "تم البدء",
"inTransit": "قيد النقل",
"outForDelivery": "قيد التسليم",
"delivered": "تم التسليم",
"negotiate": "تفاوض",
"accepted": "مقبول",
"cancelled": "ملغى",
"loginToAnotherAccount": "تسجيل الدخول إلى حساب آخر",
"silver": "فضي",
"phoneWithoutCountryCode": "رقم الهاتف بدون رمز الدوله",
"sunday": "الأحد",
"monday": "الإثنين",
"tuesday": "الثلاثاء",
"wednesday": "الأربعاء",
"thursday": "الخميس",
"friday": "الجمعة",
"saturday": "السبت",
"adsWith": "الإعلانات:",
"usersWith": "المستخدمون:",
"branchesWith": "الفروع:",
"subscribed": "مشترك",
"expires": "تنتهي",
"renew": "تجديد",
"km": "كم",
"items": "عناصر",
"no_items": "لا توجد عناصر",
"allAds": "جميع الاعلانات",
"reserveCancel": "الغاء الحجز",
"pendingForReview": "قيد المراجعة",
"pendingForPayment": "قيد الدفع",
"rejected_n": "مرفوض",
"canceled": "ملغى",
"pendingForPost": "قيد النشر",
"active_n": "نشط",
"expired_n": "منتهي الصلاحية",
"sold_n": "مباع",
"reserved_n": "محجوز",
"buyingService": "خدمة الشراء",
"deActive": "غير نشط",
"pendingForActive": "قيد التفعيل",
"updateItem": "تحديث العنصر",
"createItem": "إنشاء عنصر",
"pleaseAddAtLeastOneItemImage": "يرجى إضافة صورة واحدة على الأقل للعنصر",
"pleaseAddValidItemName": "يرجى إضافة اسم عنصر صحيح",
"pleaseAddValidItemDescription": "يرجى إضافة وصف عنصر صحيح",
"pleaseAddValidItemPrice": "يرجى إضافة سعر عنصر صحيح",
"remaining": "متبقي",
"month": "شهر",
"currentPackage": "الحزمة الحالية",
"forVar": "لمدة",
"branch": "الفرع"
}

@ -822,5 +822,66 @@
"myDraftAds": "My Draft Ads",
"scheduleDeletedSuccessfully": "The schedule has been deleted successfully",
"addValidAddress": "Please add a valid address",
"termsPrivacyPolicy": "Terms & Privacy Policy"
"termsPrivacyPolicy": "Terms & Privacy Policy",
"pendingApproval": "Pending Approval",
"inReview": "In Review",
"rejected": "Rejected",
"deactivated": "Deactivated",
"blocked": "Blocked",
"allRequests": "All Requests",
"pending": "Pending",
"preparingToCollect": "Preparing To Collect",
"readyToCollect": "Ready To Collect",
"collected": "Collected",
"initiated": "Initiated",
"inTransit": "In Transit",
"outForDelivery": "Out For De,livery",
"negotiate": "Negotiate",
"accepted": "Accepted",
"cancelled": "Cancelled",
"delivered": "Delivered",
"loginToAnotherAccount": "Login To Another Account",
"silver": "Silver",
"phoneWithoutCountryCode": "Phone without country code",
"sunday": "Sunday",
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"adsWith": "Ads:",
"usersWith": "Users:",
"branchesWith": "Branches:",
"subscribed": "Subscribed",
"expires": "Expires",
"renew": "Renew",
"km": "km",
"items": "items",
"no_items": "No items",
"allAds": "All Ads",
"reserveCancel": "Reserve Cancel",
"pendingForReview": "Pending For Review",
"pendingForPayment": "Pending For Payment",
"rejected_n": "Rejected",
"canceled": "Cancelled",
"pendingForPost": "Pending For Post",
"active_n": "Active",
"expired_n": "Expired",
"sold_n": "Sold",
"reserved_n": "Reserved",
"buyingService": "Buying Service",
"deActive": "De Active",
"pendingForActive": "Pending For Active",
"updateItem": "Update Item",
"createItem": "Create Item",
"pleaseAddAtLeastOneItemImage": "Please add at least one item image",
"pleaseAddValidItemName": "Please add valid item name",
"pleaseAddValidItemDescription": "Please add valid item description",
"pleaseAddValidItemPrice": "Please add valid item price",
"remaining": "remaining",
"month": "Month",
"currentPackage": "Current Package",
"forVar": "for",
"branch": "branch"
}

@ -1,3 +1,4 @@
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:mc_common_app/models/general_models/post_params_model.dart';
import 'package:mc_common_app/models/subscriptions_models/provider_subscription_model.dart';
@ -35,6 +36,9 @@ class AppState {
_deviceType = value;
}
bool isArabic(BuildContext context) =>
Localizations.localeOf(context).languageCode == 'ar';
AppType currentAppType = AppType.provider;
UserType userType = UserType.customer;
@ -66,7 +70,8 @@ class AppState {
List<Subscription>? _providerSubscription;
List<Subscription> get getproviderSubscription => _providerSubscription ?? [Subscription(name: "")];
List<Subscription> get getproviderSubscription =>
_providerSubscription ?? [Subscription(name: "")];
set setproviderSubscription(List<Subscription>? value) {
_providerSubscription = value;
@ -74,7 +79,8 @@ class AppState {
DropValue? _userRegisterCountrySelection;
DropValue get getUserRegisterCountrySelection => _userRegisterCountrySelection!;
DropValue get getUserRegisterCountrySelection =>
_userRegisterCountrySelection!;
set setUserRegisterCountrySelection(DropValue value) {
_userRegisterCountrySelection = value;
@ -87,6 +93,4 @@ class AppState {
set setIsViewOnly(bool value) {
_isViewOnly = value;
}
}

@ -8,6 +8,8 @@ import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/date_helper.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
extension EmailValidator on String {
Widget toText(
@ -1075,13 +1077,13 @@ extension RequestDeliveryOptionEnumTosTRINGExt on RequestDeliveryOptionEnum {
String getStringFromRequestDeliveryOptionEnum() {
switch (this) {
case RequestDeliveryOptionEnum.delivery:
return "Delivery";
return LocaleKeys.delivery.tr();
case RequestDeliveryOptionEnum.selfPickup:
return "Self Pickup";
return LocaleKeys.selfPickup.tr();
case RequestDeliveryOptionEnum.both:
return "Delivery, Self Pickup";
return "${LocaleKeys.delivery.tr()}, ${LocaleKeys.selfPickup.tr()}";
default:
return "Self Pickup";
return LocaleKeys.selfPickup.tr();
}
}
}

@ -148,14 +148,14 @@ class CodegenLoader extends AssetLoader{
"insert_otp_code": "ادخل الرمز",
"type_code": "الرجاء كتابة الرمز الذي أرسلناه إلى",
"resend_code": "أعد إرسال الرمز",
"check_code": "التحقق من الشفرة",
"check_code": "التحقق من الرمز",
"time_will_expire": "إعادة إرسال الرمز بتنسيق",
"sec": "ثانية",
"providers": "الموفرون",
"appointments": "تعيينات",
"appointments": "المواعيد",
"home": "بيت",
"ads": "إعلانات",
"settings": "إعدادات",
"settings": "الإعدادات",
"view_all": "مشاهدة الكل",
"my_active_Ads": "إعلاناتي النشطة",
"recommended_ads": "الإعلانات الموصى بها",
@ -228,8 +228,8 @@ class CodegenLoader extends AssetLoader{
"noItemSelectedYet": "لم يتم تحديد أي عنصر بعد",
"totalAdditionalAmount": "إجمالي المبلغ الإضافي",
"sar": "ريال سعودي",
"cancel": "يلغي",
"add": "يضيف",
"cancel": "الغاء",
"add": "اضافه",
"itemsAddedSuccessfully": "تمت إضافة العناصر بنجاح",
"pleaseSelectItems": "يرجى اختيار العناصر",
"totalAmount": "المبلغ الإجمالي",
@ -242,10 +242,10 @@ class CodegenLoader extends AssetLoader{
"typeHere": "اكتب هنا...",
"pleaseSelectReason": "يرجى تحديد السبب",
"noAppointmentFound": "لم يتم العثور على مواعيد",
"slotsOverview": "نظرة عامة على الفتحات",
"slotsOverview": "نظرة عامة على الحجوزات",
"empty": "فارغ",
"occupied": "محجوز",
"totalSlots": "إجمالي الفتحات",
"totalSlots": "إجمالي الحجوزات",
"selectAppointments": "اختيار المواعيد",
"appointmentMergeSuccessfully": "دمج المواعيد تم بنجاح",
"updateAppointment": "تحديث الموعد",
@ -254,11 +254,11 @@ class CodegenLoader extends AssetLoader{
"appointmentisCompleted": "تم اكتمال الموعد",
"workStart": "بدء العمل",
"payNow": "ادفع الآن",
"arrived": "وصل",
"arrived": "تم الوصول",
"payLater": "ادفع لاحقًا",
"complete": "اكتمل",
"makeAnOffer": "قدم عرضًا",
"provideOffer": "تقديم العرض",
"provideOffer": "تقديم عرض",
"enterAmount": "أدخل المبلغ",
"submit": "إرسال",
"viewChat": "عرض الدردشة",
@ -422,7 +422,7 @@ class CodegenLoader extends AssetLoader{
"passwordIsStrong": "كلمة المرور الخاصة بك قوية",
"passwordVeryStrong": "كلمة المرور الخاصة بك قوية جدًا",
"selectDuration": "اختر المدة",
"daysVar": "الأيام",
"daysVar": "يوم",
"adCharges": "رسوم الإعلان",
"select": "اختر",
"deleteAdConfirmation": "هل تريد حذف الإعلان؟",
@ -671,7 +671,7 @@ class CodegenLoader extends AssetLoader{
"servicesNotAvailableHomeLocation": "بعض الخدمات غير متوفرة في الموقع المنزلي.",
"additionalChargesNotice": "هذه الرسوم إضافية على رسوم الخدمة الفعلية. قد تختلف الرسوم للعناصر الثقيلة.",
"selectServiceLocation": "اختر موقع الخدمة",
"apptOn": "التعيين في",
"apptOn": "الموعد في",
"merged": "مُدمج",
"date": "التاريخ",
"selectAll": "اختر الكل",
@ -833,14 +833,75 @@ class CodegenLoader extends AssetLoader{
"specialRequestsChats": "دردشات الطلبات الخاصة",
"selectDeliveryOption": "اختر خيار التوصيل",
"deliveryOptions": "خيارات التوصيل",
"selfPickup": "الالتقاط الذاتي",
"selfPickup": "الاستلام الذاتي",
"updateYourLocationInfo": "قم بتحديث معلومات موقعك",
"initiateSelfPickup": "بدء الاستلام الذاتي",
"selfPickupStatus": "حالة الالتقاط الذاتي",
"selfPickupStatus": "حالة الاستلام الذاتي",
"myDraftAds": "مسودتي للإعلانات",
"scheduleDeletedSuccessfully": "تم حذف الجدول بنجاح",
"addValidAddress": "رجى إضافة عنوان صالح",
"termsPrivacyPolicy": "الشروط وسياسة الخصوصية"
"termsPrivacyPolicy": "الشروط وسياسة الخصوصية",
"pendingApproval": "قيد الموافقة",
"inReview": "قيد المراجعة",
"rejected": "مرفوض",
"deactivated": "معطل",
"blocked": "محظور",
"allRequests": "جميع الطلبات",
"pending": "قيد الانتظار",
"preparingToCollect": "جاري التحضير للاستلام",
"readyToCollect": "جاهز للاستلام",
"collected": "تم الاستلام",
"initiated": "تم البدء",
"inTransit": "قيد النقل",
"outForDelivery": "قيد التسليم",
"delivered": "تم التسليم",
"negotiate": "تفاوض",
"accepted": "مقبول",
"cancelled": "ملغى",
"loginToAnotherAccount": "تسجيل الدخول إلى حساب آخر",
"silver": "فضي",
"phoneWithoutCountryCode": "رقم الهاتف بدون رمز الدوله",
"sunday": "الأحد",
"monday": "الإثنين",
"tuesday": "الثلاثاء",
"wednesday": "الأربعاء",
"thursday": "الخميس",
"friday": "الجمعة",
"saturday": "السبت",
"adsWith": "الإعلانات:",
"usersWith": "المستخدمون:",
"branchesWith": "الفروع:",
"subscribed": "مشترك",
"expires": "تنتهي",
"renew": "تجديد",
"km": "كم",
"items": "عناصر",
"no_items": "لا توجد عناصر",
"allAds": "جميع الاعلانات",
"reserveCancel": "الغاء الحجز",
"pendingForReview": "قيد المراجعة",
"pendingForPayment": "قيد الدفع",
"rejected_n": "مرفوض",
"canceled": "ملغى",
"pendingForPost": "قيد النشر",
"active_n": "نشط",
"expired_n": "منتهي الصلاحية",
"sold_n": "مباع",
"reserved_n": "محجوز",
"buyingService": "خدمة الشراء",
"deActive": "غير نشط",
"pendingForActive": "قيد التفعيل",
"updateItem": "تحديث العنصر",
"createItem": "إنشاء عنصر",
"pleaseAddAtLeastOneItemImage": "يرجى إضافة صورة واحدة على الأقل للعنصر",
"pleaseAddValidItemName": "يرجى إضافة اسم عنصر صحيح",
"pleaseAddValidItemDescription": "يرجى إضافة وصف عنصر صحيح",
"pleaseAddValidItemPrice": "يرجى إضافة سعر عنصر صحيح",
"remaining": "متبقي",
"month": "شهر",
"currentPackage": "الحزمة الحالية",
"forVar": "لمدة",
"branch": "الفرع"
};
static const Map<String,dynamic> _en_US = {
"firstTimeLogIn": "First Time Log In",
@ -1666,7 +1727,69 @@ static const Map<String,dynamic> _en_US = {
"myDraftAds": "My Draft Ads",
"scheduleDeletedSuccessfully": "The schedule has been deleted successfully",
"addValidAddress": "Please add a valid address",
"termsPrivacyPolicy": "Terms & Privacy Policy"
"termsPrivacyPolicy": "Terms & Privacy Policy",
"pendingApproval": "Pending Approval",
"inReview": "In Review",
"rejected": "Rejected",
"deactivated": "Deactivated",
"blocked": "Blocked",
"allRequests": "All Requests",
"pending": "Pending",
"preparingToCollect": "Preparing To Collect",
"readyToCollect": "Ready To Collect",
"collected": "Collected",
"initiated": "Initiated",
"inTransit": "In Transit",
"outForDelivery": "Out For De,livery",
"negotiate": "Negotiate",
"accepted": "Accepted",
"cancelled": "Cancelled",
"delivered": "Delivered",
"loginToAnotherAccount": "Login To Another Account",
"silver": "Silver",
"phoneWithoutCountryCode": "Phone without country code",
"sunday": "Sunday",
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"adsWith": "Ads:",
"usersWith": "Users:",
"branchesWith": "Branches:",
"subscribed": "Subscribed",
"expires": "Expires",
"renew": "Renew",
"km": "km",
"items": "items",
"no_items": "No items",
"All Ads":"All Ads",
"reserveCancel": " Reserve Cancel",
"pendingForReview": "Pending For Review",
"pendingForPayment": "Pending For Payment",
"rejected_n": "Rejected",
"canceled": "Canceled",
"pendingForPost": "Pending For Post",
"active_n": "Active",
"expired_n": "Expired",
"sold_n": "Sold",
"reserved_n": "Reserved",
"buyingService": "Buying Service",
"deActive": "De Active",
"pendingForActive": "Pending For Active",
"updateItem": "Update Item",
"createItem": "Create Item",
"pleaseAddAtLeastOneItemImage": "Please add at least one item image",
"pleaseAddValidItemName": "Please add valid item name",
"pleaseAddValidItemDescription": "Please add valid item description",
"pleaseAddValidItemPrice": "Please add valid item price",
"remaining": "remaining",
"month": "Month",
"currentPackage": "Current Package",
"forVar": "for",
"branch": "branch",
};
static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": _ar_SA, "en_US": _en_US};
}

@ -806,5 +806,80 @@ abstract class LocaleKeys {
static const scheduleDeletedSuccessfully = 'scheduleDeletedSuccessfully';
static const addValidAddress = 'addValidAddress';
static const termsPrivacyPolicy = 'termsPrivacyPolicy';
static const pendingApproval = 'pendingApproval';
static const inReview = 'inReview';
static const rejected = 'rejected';
static const deactivated = 'deactivated';
static const blocked = 'blocked';
static const allRequests = 'allRequests';
static const pending = 'pending';
static const preparingToCollect = 'preparingToCollect';
static const readyToCollect = 'readyToCollect';
static const collected = 'collected';
static const initiated = 'initiated';
static const inTransit = 'inTransit';
static const outForDelivery = 'outForDelivery';
static const delivered = 'delivered';
static const negotiate = 'negotiate';
static const accepted = 'accepted';
static const cancelled = 'cancelled';
static const loginToAnotherAccount = 'loginToAnotherAccount';
static const silver = 'silver';
static const phoneWithoutCountryCode = 'phoneWithoutCountryCode';
static const sunday = 'sunday';
static const monday = 'monday';
static const tuesday = 'tuesday';
static const wednesday = 'wednesday';
static const thursday = 'thursday';
static const friday = 'friday';
static const saturday = 'saturday';
static const adsWith = 'adsWith';
static const usersWith = 'usersWith';
static const branchesWith = 'branchesWith';
static const subscribed = 'subscribed';
static const renew = 'renew';
static const km = 'km';
static const items = 'items';
static const no_items = 'no_items';
static const allAds = 'allAds';
static const reserveCancel = 'reserveCancel';
static const pendingForReview = 'pendingForReview';
static const pendingForPayment = 'pendingForPayment';
static const rejected_n = 'rejected_n';
static const cancelled_n = 'cancelled_n';
static const pendingForPost = 'pendingForPost';
static const active_n = 'active_n';
static const expired_n = 'expired_n';
static const sold_n = 'sold_n';
static const reserved_n = 'reserved_n';
static const buyingService = 'buyingService';
static const deActive = 'deActive';
static const pendingForActive = 'pendingForActive';
static const updateItem = 'updateItem';
static const createItem = 'createItem';
static const pleaseAddAtLeastOneItemImage = 'pleaseAddAtLeastOneItemImage';
static const pleaseAddValidItemName = 'pleaseAddValidItemName';
static const pleaseAddValidItemDescription = 'pleaseAddValidItemDescription';
static const pleaseAddValidItemPrice = 'pleaseAddValidItemPrice';
static const remaining = 'remaining';
static const month = 'month';
static const currentPackage = 'currentPackage';
static const forVar = 'forVar';
static const branch = 'branch';
}

@ -347,6 +347,7 @@ class Mileage {
class ModelYear {
int? id;
String? label;
String? labelN;
ModelYear({this.id, this.label});

@ -305,56 +305,55 @@ class Utils {
static String getNameByRequestOfferStatusEnum(RequestOfferStatusEnum requestOfferStatusEnum) {
switch (requestOfferStatusEnum) {
case RequestOfferStatusEnum.offer:
return "Offer";
return LocaleKeys.offer.tr();
case RequestOfferStatusEnum.negotiate:
return "Negotiate";
return LocaleKeys.negotiate.tr();
case RequestOfferStatusEnum.accepted:
return "Accepted";
return LocaleKeys.accepted.tr();
case RequestOfferStatusEnum.rejected:
return "Rejected";
return LocaleKeys.rejected.tr();
case RequestOfferStatusEnum.cancel:
return "Cancelled";
return LocaleKeys.cancelled.tr();
}
}
static String getNameByShippingRequestStatusEnum(ShippingRequestStatusEnum shippingRequestStatusEnum) {
switch (shippingRequestStatusEnum) {
case ShippingRequestStatusEnum.allRequests:
return "All Requests";
return LocaleKeys.allRequests.tr();
case ShippingRequestStatusEnum.initiated:
return "Initiated";
return LocaleKeys.initiated.tr();
case ShippingRequestStatusEnum.inTransit:
return "In Transit";
return LocaleKeys.inTransit.tr();
case ShippingRequestStatusEnum.outForDelivery:
return "Out For Delivery";
return LocaleKeys.outForDelivery.tr();
case ShippingRequestStatusEnum.delivered:
return "Delivered";
return LocaleKeys.delivered.tr();
case ShippingRequestStatusEnum.pending:
return "Pending";
return LocaleKeys.pending.tr();
}
}
static String getNameBySelfPickupRequestStatusEnum(SelfPickupRequestStatusEnum selfPickupRequestStatusEnum) {
switch (selfPickupRequestStatusEnum) {
case SelfPickupRequestStatusEnum.allRequests:
return "All Requests";
return LocaleKeys.allRequests.tr();
case SelfPickupRequestStatusEnum.pending:
return "Pending";
return LocaleKeys.pending.tr();
case SelfPickupRequestStatusEnum.preparingToCollect:
return "Preparing To Collect";
return LocaleKeys.preparingToCollect.tr();
case SelfPickupRequestStatusEnum.readyToCollect:
return "Ready To Collect";
return LocaleKeys.readyToCollect.tr();
case SelfPickupRequestStatusEnum.collected:
return "Collected";
return LocaleKeys.collected.tr();
}
}
@ -424,24 +423,44 @@ class Utils {
static String getChipStatusTextByBranchStatus(BranchStatusEnum branchStatusEnum) {
switch (branchStatusEnum) {
case BranchStatusEnum.pending:
return "Pending Approval";
return LocaleKeys.pendingApproval.tr();
case BranchStatusEnum.review:
return "In Review";
return LocaleKeys.inReview.tr();
case BranchStatusEnum.rejected:
return "Rejected";
return LocaleKeys.rejected.tr();
case BranchStatusEnum.deactivated:
return "Deactivated";
return LocaleKeys.deactivated.tr();
case BranchStatusEnum.blocked:
return "Blocked";
return LocaleKeys.blocked.tr();
case BranchStatusEnum.approvedOrActive:
return "Active";
return LocaleKeys.active.tr();
}
}
// static String getChipStatusTextByBranchStatus(BranchStatusEnum branchStatusEnum) {
// switch (branchStatusEnum) {
// case BranchStatusEnum.pending:
// return "Pending Approval";
//
// case BranchStatusEnum.review:
// return "In Review";
//
// case BranchStatusEnum.rejected:
// return "Rejected";
//
// case BranchStatusEnum.deactivated:
// return "Deactivated";
//
// case BranchStatusEnum.blocked:
// return "Blocked";
//
// case BranchStatusEnum.approvedOrActive:
// return "Active";
// }
}
static statusContainerChip({
required String text,

@ -2379,7 +2379,7 @@ class AdVM extends BaseVM {
autoFillSelectedVehicleType();
autoFillSelectedVehicleAdsDuration();
if (isForDraft) {
autoFillSelectedVehicleAdsDetails();
autoFillSelectedVehicleAdsDetails(context);
}
navigateWithName(context, AppRoutes.selectAdTypeView, arguments: [AppState().currentAppType == AppType.provider, isFromExtendAd, previousDetails.id]);
}
@ -2456,7 +2456,7 @@ class AdVM extends BaseVM {
notifyListeners();
}
void autoFillSelectedVehicleAdsDetails() async {
void autoFillSelectedVehicleAdsDetails(BuildContext context) async {
if (vehicleBrands.isEmpty) {
await getVehicleBrandsByVehicleTypeId();
}
@ -2465,18 +2465,18 @@ class AdVM extends BaseVM {
if (index != -1) {
await updateSelectionVehicleBrandId(SelectionModel(selectedId: vehicleBrands[index].id!, selectedOption: vehicleBrands[index].vehicleBrandDescription ?? ""));
}
bool isArabic = AppState().isArabic(context);
updateSelectionVehicleModelId(SelectionModel(selectedId: previousAdDetails!.vehicle!.model!.id!, selectedOption: previousAdDetails!.vehicle!.model!.label ?? ""));
updateSelectionVehicleModelYearId(SelectionModel(selectedId: previousAdDetails!.vehicle!.modelyear!.id!, selectedOption: previousAdDetails!.vehicle!.modelyear!.label ?? ""));
updateSelectionVehicleColorId(SelectionModel(selectedId: previousAdDetails!.vehicle!.color!.id!, selectedOption: previousAdDetails!.vehicle!.color!.label ?? ""));
updateSelectionVehicleConditionId(SelectionModel(selectedId: previousAdDetails!.vehicle!.condition!.id!, selectedOption: previousAdDetails!.vehicle!.condition!.label ?? ""));
updateSelectionVehicleCategoryId(SelectionModel(selectedId: previousAdDetails!.vehicle!.category!.id!, selectedOption: previousAdDetails!.vehicle!.category!.label ?? ""));
updateSelectionVehicleColorId(SelectionModel(selectedId: previousAdDetails!.vehicle!.color!.id!, selectedOption: isArabic ? previousAdDetails!.vehicle!.color!.labelN.toString() : previousAdDetails!.vehicle!.color!.label ?? ""));
updateSelectionVehicleConditionId(SelectionModel(selectedId: previousAdDetails!.vehicle!.condition!.id!, selectedOption: isArabic ? previousAdDetails!.vehicle!.condition!.labelN.toString() :previousAdDetails!.vehicle!.condition!.label ?? ""));
updateSelectionVehicleCategoryId(SelectionModel(selectedId: previousAdDetails!.vehicle!.category!.id!, selectedOption: isArabic ? previousAdDetails!.vehicle!.category!.labelN.toString() :previousAdDetails!.vehicle!.category!.label ?? ""));
updateSelectionVehicleMileageId(SelectionModel(
selectedId: previousAdDetails!.vehicle!.mileage!.id!,
selectedOption: "${previousAdDetails!.vehicle!.mileage!.mileageStart} - ${previousAdDetails!.vehicle!.mileage!.mileageEnd}",
));
updateSelectionVehicleTransmissionId(SelectionModel(selectedId: previousAdDetails!.vehicle!.transmission!.id!, selectedOption: previousAdDetails!.vehicle!.transmission!.label ?? ""));
updateSelectionVehicleSellerTypeId(SelectionModel(selectedId: previousAdDetails!.vehicle!.sellertype!.id!, selectedOption: previousAdDetails!.vehicle!.sellertype!.label ?? ""));
updateSelectionVehicleTransmissionId(SelectionModel(selectedId: previousAdDetails!.vehicle!.transmission!.id!, selectedOption:isArabic ? previousAdDetails!.vehicle!.transmission!.labelN.toString() : previousAdDetails!.vehicle!.transmission!.label ?? ""));
updateSelectionVehicleSellerTypeId(SelectionModel(selectedId: previousAdDetails!.vehicle!.sellertype!.id!, selectedOption: isArabic ? previousAdDetails!.vehicle!.sellertype!.labelN.toString() :previousAdDetails!.vehicle!.sellertype!.label ?? ""));
int indexCountry = vehicleCountries.indexWhere((element) => element.id == previousAdDetails!.vehicle!.countryID);
if (indexCountry != -1) {
updateSelectionVehicleCountryId(SelectionModel(selectedId: vehicleCountries[indexCountry].id!, selectedOption: vehicleCountries[indexCountry].countryName ?? ""));

@ -4,6 +4,7 @@ import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/cupertino.dart';
import 'package:http/http.dart';
import 'package:http/src/response.dart';
import 'package:local_auth/local_auth.dart';
import 'package:mc_common_app/classes/app_state.dart';
@ -748,6 +749,7 @@ class UserVM extends BaseVM {
} else {
context.setLocale(const Locale('ar', 'SA'));
}
log ("updated status: ${AppState().isArabic(context)}");
// notifyListeners();
}

@ -1,5 +1,6 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/app_state.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
@ -85,6 +86,7 @@ class _AdsDetailViewState extends State<AdsDetailView> {
}
Widget buildVehicleDetailsWidget() {
bool isArabic = AppState().isArabic(context);
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
@ -94,7 +96,8 @@ class _AdsDetailViewState extends State<AdsDetailView> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Flexible(
child: "${widget.adDetails.vehicle!.vehicleTitle} | ${widget.adDetails.vehicle!.color!.label}| ${widget.adDetails.id}".toText(fontSize: 16, maxLines: 2),
child: "${widget.adDetails.vehicle!.vehicleTitle} | ${isArabic ? widget.adDetails.vehicle!.color!.labelN : widget.adDetails.vehicle!.color!.label}|"
" ${widget.adDetails.id}".toText(fontSize: 16, maxLines: 2),
),
(widget.adDetails.vehicle!.cityName ?? "").toText(fontSize: 10, color: MyColors.lightTextColor),
],
@ -105,7 +108,7 @@ class _AdsDetailViewState extends State<AdsDetailView> {
Row(
children: [
("${LocaleKeys.vehicleModel.tr()}: ").toText(fontSize: 12, color: MyColors.lightTextColor),
"${widget.adDetails.vehicle!.model!.label}".toText(fontSize: 12),
"${isArabic? widget.adDetails.vehicle!.model!.labelN :widget.adDetails.vehicle!.model!.label}".toText(fontSize: 12),
],
),
(widget.adDetails.vehicle!.countryName ?? '').toText(fontSize: 10, color: MyColors.lightTextColor),
@ -124,7 +127,7 @@ class _AdsDetailViewState extends State<AdsDetailView> {
Row(
children: [
("${LocaleKeys.mileage.tr()}: ").toText(fontSize: 12, color: MyColors.lightTextColor),
"${widget.adDetails.vehicle!.mileage!.mileageEnd} Km".toText(fontSize: 12),
"${widget.adDetails.vehicle!.mileage!.mileageEnd} ${LocaleKeys.km.tr()}".toText(fontSize: 12),
],
),
widget.adDetails.createdOn != null ? DateTime.parse(widget.adDetails.createdOn!).getTimeAgo().toText(fontSize: 10, color: MyColors.lightTextColor) : const SizedBox(),
@ -133,13 +136,13 @@ class _AdsDetailViewState extends State<AdsDetailView> {
Row(
children: [
("${LocaleKeys.transmission.tr()}: ").toText(fontSize: 12, color: MyColors.lightTextColor),
"${widget.adDetails.vehicle!.transmission!.label}".toText(fontSize: 12),
"${isArabic? widget.adDetails.vehicle!.transmission!.labelN :widget.adDetails.vehicle!.transmission!.label}".toText(fontSize: 12),
],
),
Row(
children: [
("${LocaleKeys.odometer.tr()}: ").toText(fontSize: 12, color: MyColors.lightTextColor),
"${widget.adDetails.vehicle!.odometer ?? 0} Km".toText(fontSize: 12),
"${widget.adDetails.vehicle!.odometer ?? 0} ${LocaleKeys.km.tr()}".toText(fontSize: 12),
],
),
Row(

@ -17,6 +17,8 @@ import 'package:mc_common_app/view_models/ad_view_model.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
import '../../../classes/app_state.dart';
class AdsListWidget extends StatelessWidget {
final List<AdDetailsModel> adsList;
final ScrollPhysics? scrollPhysics;
@ -117,6 +119,7 @@ class AdCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
bool isArabic = AppState().isArabic(context);
return Stack(
alignment: Alignment.center,
children: [

@ -79,7 +79,7 @@ class SelectAdTypeView extends StatelessWidget {
adVM.updateSelectionVehicleTypeId(SelectionModel(selectedId: vehicleTypeModel.id!, selectedOption: vehicleTypeModel.vehicleTypeName ?? "", errorValue: ""));
if (adVM.isAdEditEnabled) {
adVM.
autoFillSelectedVehicleAdsDetails();
autoFillSelectedVehicleAdsDetails(context);
}
if (AppState().currentAppType == AppType.provider) {
if (isFromExtendAd && !adVM.isAdEditEnabled) {

@ -22,6 +22,8 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:provider/provider.dart';
import '../../../classes/app_state.dart';
class AppointmentServicePickBottomSheet extends StatelessWidget {
const AppointmentServicePickBottomSheet({super.key});
@ -70,12 +72,16 @@ class AppointmentServicePickBottomSheet extends StatelessWidget {
8.height,
Builder(
builder: (context) {
bool isArabic = AppState().isArabic(context);
List<DropValue> serviceCategories = [];
for (var element in appointmentsVM.branchServices) {
if (element.categoryId == appointmentsVM.branchSelectedCategoryId.selectedId) {
serviceCategories.add(DropValue(
element.serviceProviderServiceId ?? 0,
element.serviceDescription!,
isArabic
? element.serviceDescriptionN!
: element.serviceDescription!,
// element.serviceDescription!,
"",
));
}

@ -173,7 +173,7 @@ class AppointmentHomeTileWidget extends StatelessWidget {
children: [
!isForProvider ? MyAssets.miniClock.buildSvg(height: 12) : const SizedBox(),
2.width,
"${isForProvider ? "Appt. on:" : ""} ${appointmentListModel!.duration ?? ""} ${appointmentListModel!.appointmentDate!.toFormattedDateWithoutTime()}"
"${isForProvider ? LocaleKeys.apptOn.tr() : ""} ${appointmentListModel!.duration ?? ""} ${appointmentListModel!.appointmentDate!.toFormattedDateWithoutTime()}"
.toText(color: MyColors.lightTextColor, fontSize: 12, letterSpacing: -0.48, height: 19 / 12),
],
),
@ -291,7 +291,7 @@ class AppointmentFragmentTileWidget extends StatelessWidget {
(appointmentListModel!.providerName ?? "").toText(color: MyColors.darkTextColor, fontSize: 16, letterSpacing: -0.64, height: 24 / 16),
Row(
children: [
('Branch:').toText(color: MyColors.greyColor, fontSize: 12, letterSpacing: -0.48, height: 18 / 12),
("${LocaleKeys.branch.tr()}:").toText(color: MyColors.greyColor, fontSize: 12, letterSpacing: -0.48, height: 18 / 12),
2.width,
(appointmentListModel!.branchName ?? "").toText(color: MyColors.darkTextColor, fontSize: 12, letterSpacing: -0.48, height: 18 / 12),
],

@ -88,9 +88,13 @@ class CreateRequestPage extends StatelessWidget {
),
] else ...[
Builder(builder: (context) {
bool isArabic = AppState().isArabic(context);
List<DropValue> vehicleTypeDrop = [];
for (var element in requestsVM.vehicleTypes) {
vehicleTypeDrop.add(DropValue(element.id?.toInt() ?? 0, element.vehicleTypeName ?? "", ""));
vehicleTypeDrop.add(DropValue(element.id?.toInt() ?? 0,
isArabic
? element.vehicleTypeNameN ?? ""
: element.vehicleTypeName ?? "", ""));
}
return DropdownField(
(DropValue value) => requestsVM.updateSelectionVehicleTypeId(SelectionModel(selectedId: value.id, selectedOption: value.value)),
@ -155,9 +159,13 @@ class CreateRequestPage extends StatelessWidget {
),
8.height,
Builder(builder: (context) {
bool isArabic = AppState().isArabic(context);
List<DropValue> vehicleCountriesDrop = [];
for (var element in requestsVM.vehicleCountries) {
vehicleCountriesDrop.add(DropValue(element.id?.toInt() ?? 0, element.countryName ?? "", ""));
vehicleCountriesDrop.add(DropValue(element.id?.toInt() ?? 0,
isArabic
? element.countryNameN ?? ""
: element.countryName ?? "", ""));
}
return DropdownField(
(DropValue value) => requestsVM.updateSelectionVehicleCountryId(SelectionModel(selectedOption: value.value, selectedId: value.id)),
@ -177,9 +185,12 @@ class CreateRequestPage extends StatelessWidget {
] else ...[
8.height,
Builder(builder: (context) {
bool isArabic = AppState().isArabic(context);
List<DropValue> vehicleCitiesDrop = [];
for (var element in requestsVM.vehicleCities) {
vehicleCitiesDrop.add(DropValue(element.id?.toInt() ?? 0, element.cityName ?? "", ""));
vehicleCitiesDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic
? element.cityNameN ?? ""
: element.cityName ?? "", ""));
}
return DropdownField(
(DropValue value) => requestsVM.updateSelectionVehicleCityId(SelectionModel(selectedId: value.id, selectedOption: value.value)),

@ -31,6 +31,7 @@ class _SettingOptionsFAQsState extends State<SettingOptionsFAQs> {
await settingsOptionsVM.getAllFaqs();
});
super.initState();
}
@override

@ -128,11 +128,25 @@ class _SettingOptionsMoreState extends State<SettingOptionsMore> {
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.settings, size: 20),
titleText: LocaleKeys.settings.tr(),
needBorderBelow: false,
needBorderBelow: true,
onTap: () {
// context.read<SettingOptionsVM>().getAppInvitationHistoryList();
navigateWithName(context, AppRoutes.settingOptionsInviteFriends);
}),
/////////////////////////////////me add to test
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.translate, size: 20),
titleText: LocaleKeys.language.tr(),
isForLanguage: true,
onTap: () {
context.read<UserVM>().changeLanguage(context);
Future.delayed(const Duration(seconds: 1), () {
setState(() {});
});
},
),
//////////////////////////////////////////////////////////
],
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12), borderRadius: 0),
10.height,

@ -77,7 +77,7 @@ class _EditAccountPageState extends State<EditAccountPage> {
children: [
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.quickreply_outlined, size: 20),
titleText: "Requests",
titleText: LocaleKeys.requests.tr(),
needBorderBelow: true,
onTap: () {
context.read<DashboardVmCustomer>().onNavbarTapped(4);
@ -85,19 +85,19 @@ class _EditAccountPageState extends State<EditAccountPage> {
}),
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.settings, size: 20),
titleText: "Settings",
titleText: LocaleKeys.settings.tr(),
needBorderBelow: true,
onTap: () => navigateWithName(context, AppRoutes.settingOptionsInviteFriends),
),
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.question_mark_outlined, size: 20),
titleText: "Help",
titleText: LocaleKeys.help.tr(),
needBorderBelow: true,
onTap: () => navigateWithName(context, AppRoutes.settingOptionsInviteFriends),
),
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.person, size: 20),
titleText: "Account",
titleText: LocaleKeys.account.tr(),
needBorderBelow: false,
onTap: () {
context.read<DashboardVmCustomer>().onNavbarTapped(4);
@ -108,7 +108,7 @@ class _EditAccountPageState extends State<EditAccountPage> {
10.height,
CustomSettingOptionsTile(
leadingWidget: const Icon(Icons.translate, size: 20),
titleText: "Language",
titleText: LocaleKeys.language.tr(),
isForLanguage: true,
onTap: () {},
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12), borderRadius: 0),
@ -124,8 +124,8 @@ class _EditAccountPageState extends State<EditAccountPage> {
color: MyColors.primaryColor,
),
),
titleText: "My Subscriptions",
subTitle: "Silver",
titleText: LocaleKeys.mySubscription.tr(),
subTitle: LocaleKeys.silver.tr(),
isForLanguage: false,
needBorderBelow: true,
onTap: () {
@ -141,7 +141,7 @@ class _EditAccountPageState extends State<EditAccountPage> {
// color: MyColors.primaryColor,
),
),
titleText: "Subscriptions",
titleText: LocaleKeys.subscriptions.tr(),
subTitle: null,
isForLanguage: false,
needBorderBelow: false,
@ -152,7 +152,7 @@ class _EditAccountPageState extends State<EditAccountPage> {
],
).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12), borderRadius: 0),
10.height,
(AppState().currentAppType == AppType.provider) ? const Text("Provider") : const Text("Customer"),
(AppState().currentAppType == AppType.provider) ? const Text(LocaleKeys.provider) : const Text(LocaleKeys.customer),
],
),
),

@ -107,7 +107,7 @@ class _LoginMethodSelectionPageState extends State<LoginMethodSelectionPage> {
],
),
150.height,
("Login To Another Account")
LocaleKeys.loginToAnotherAccount.tr()
.toText(
fontSize: 20,
letterSpacing: -1.44,

@ -54,14 +54,15 @@ class _UpdateUserCityCountryState extends State<UpdateUserCityCountry> {
padding: const EdgeInsets.only(right: 20, left: 20, top: 12),
child: Builder(builder: (context) {
List<DropValue> userCountryDrop = [];
final isArabic = AppState().isArabic(context);
for (var element in uVM.userCountries!.data!) {
var countryid = country == null ? AppState().getUser.data!.userInfo!.countryId : country!.id;
print("Country ID" + countryid.toString());
if (countryid == element.id) {
print("Country Matched");
country = DropValue(element.id?.toInt() ?? 0, element.countryName ?? "", "");
country = DropValue(element.id?.toInt() ?? 0, isArabic ? element.countryNameN ?? "": element.countryName ?? "", "");
}
userCountryDrop.add(DropValue(element.id?.toInt() ?? 0, element.countryName ?? "", ""));
userCountryDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic ? element.countryNameN ?? "": element.countryName ?? "", ""));
}
return DropdownField(
(DropValue value) async {
@ -82,13 +83,14 @@ class _UpdateUserCityCountryState extends State<UpdateUserCityCountry> {
padding: const EdgeInsets.only(right: 20, left: 20, top: 12),
child: Builder(builder: (context) {
List<DropValue> userCityDrop = [];
final isArabic = AppState().isArabic(context);
for (var element in uVM.userCities!.data!) {
var cid = city == null ? AppState().getUser.data!.userInfo!.cityId : city!.id;
print("City ID" + cid.toString());
if (cid == element.id) {
city = DropValue(element.id?.toInt() ?? 0, element.cityName ?? "", "");
city = DropValue(element.id?.toInt() ?? 0, isArabic ? element.cityNameN ?? "": element.cityName ?? "", "");
}
userCityDrop.add(DropValue(element.id?.toInt() ?? 0, element.cityName ?? "", ""));
userCityDrop.add(DropValue(element.id?.toInt() ?? 0, isArabic ? element.cityNameN ?? "": element.cityName ?? "", ""));
}
return DropdownField(
(DropValue value) {

@ -57,7 +57,7 @@ class _AddPhoneNumWidgetState extends State<AddPhoneNumWidget> {
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
"Enter Phone Number".toText(fontSize: 16, isBold: true),
LocaleKeys.enterPhoneNumber.tr().toText(fontSize: 16, isBold: true),
8.height,
Container(
decoration: Utils.containerColorRadiusBorderWidth(MyColors.white, 0, MyColors.darkPrimaryColor, 2),
@ -81,7 +81,7 @@ class _AddPhoneNumWidgetState extends State<AddPhoneNumWidget> {
8.height,
TxtField(
keyboardType: TextInputType.phone,
hint: "Phone without country code ",
hint: LocaleKeys.phoneWithoutCountryCode.tr(),
value: phoneNum,
isSidePaddingZero: true,
onChanged: (v) {
@ -116,7 +116,7 @@ class _AddPhoneNumWidgetState extends State<AddPhoneNumWidget> {
children: [
Expanded(
child: ShowFillButton(
title: "Cancel",
title: LocaleKeys.cancel.tr(),
backgroundColor: MyColors.greyButtonColor,
txtColor: Colors.black,
onPressed: () {

@ -95,24 +95,47 @@ class BranchDetailCard extends StatelessWidget {
],
),
8.height,
// if (services != null)
// Column(
// children: services!
// .take(2)
// .map(
// (e) => Row(
// children: [
// //TODO: Needs to add icon in the future when added from the provider
// // MyAssets.maintenanceIcon.buildSvg(),
// // 8.width,
// e.serviceDescription.toString().toText(fontSize: 12)
// ],
// ),
// )
// .toList(),
// ),
if (services != null)
Column(
children: services!
.take(2)
.map(
(e) => Row(
children: [
//TODO: Needs to add icon in the future when added from the provider
// MyAssets.maintenanceIcon.buildSvg(),
// 8.width,
e.serviceDescription.toString().toText(fontSize: 12)
],
),
)
(e) {
bool isArabic = AppState().isArabic(context);
String serviceText = isArabic
? e.serviceDescriptionN.toString()
: e.serviceDescription.toString();
return Row(
children: [
//TODO: Needs to add icon in the future when added from the provider
// MyAssets.maintenanceIcon.buildSvg(),
// 8.width,
serviceText.toText(fontSize: 12)
],
);
},
)
.toList(),
),
if (services != null && services!.length > 2)
("+${services!.length - 2} more").toText(
("+${services!.length - 2} ${LocaleKeys.more.tr()}").toText(
color: MyColors.primaryColor,
isUnderLine: true,
isBold: true,

@ -1,5 +1,6 @@
import 'dart:developer';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/models/general_models/widgets_models.dart';
@ -32,6 +33,8 @@ class FiltersList extends StatelessWidget {
itemCount: filterList.length,
scrollDirection: Axis.horizontal,
itemBuilder: (BuildContext context, int index) {
print("==================================================");
print(filterList[index].title);
return InkWell(
onTap: () {
onFilterTapped(index, filterList[index].id);
@ -62,7 +65,7 @@ class FiltersList extends StatelessWidget {
],
],
// Text displayed in the chip
filterList[index].title.toText(
filterList[index].title.tr().toText(
fontSize: 13,
letterSpacing: -0.14,
color: filterList[index].isSelected ? MyColors.white : null,

@ -43,6 +43,7 @@ dependencies:
change_app_package_name: ^1.3.0
share_plus: any
toastification: ^2.3.0
geolocator_android: 4.5.5
# Firebase Packages

Loading…
Cancel
Save