aamir_dev
Faiz Hashmi 1 year ago
parent f8514aaf7b
commit 2215bbd63b

@ -793,5 +793,9 @@
"companyNameMandatory": "اسم الشركة إلزامي",
"connectionProblem": "مشكلة في الاتصال",
"pleaseCheckConnection": "يرجى التحقق من اتصالك بالإنترنت والمحاولة مرة أخرى",
"ok": "نعم"
"ok": "نعم",
"continueAsGuest": "الاستمرار كضيف",
"loginToViewAppointments": "الرجاء تسجيل الدخول لعرض المواعيد",
"itemType": "غرض"
}

@ -791,5 +791,8 @@
"addServiceDetails": "Add service details",
"connectionProblem": "Connection Problem",
"pleaseCheckConnection": "Please check your internet connection and try again.",
"ok": "Ok"
"ok": "Ok",
"continueAsGuest": "Continue as a guest",
"loginToViewAppointments": "Please Login to View Appointments",
"itemType": "Item Type"
}

@ -52,9 +52,7 @@ import 'package:mc_common_app/widgets/image_viewer/image_viewer_screen.dart';
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
class AppRoutes {
//User
static const String splash = "/splash";
static const String registerSelection = "/registerSelection";
@ -187,28 +185,12 @@ class AppRoutes {
registerProvider: (context) => const RegisterProviderPage(),
forgetPassword: (context) => const ForgetPasswordPage(),
loginVerification: (context) => const LoginVerificationPage(),
loginWithPassword: (context) => const LoginWithPassword(),
loginMethodSelection: (context) =>
LoginMethodSelectionPage(ModalRoute
.of(context)!
.settings
.arguments as String),
completeProfile: (context) =>
CompleteProfilePage(ModalRoute
.of(context)!
.settings
.arguments as RegisterUserRespModel),
loginWithPassword: (context) => LoginWithPassword(isRemoveBackButton: (ModalRoute.of(context)!.settings.arguments ?? true) as bool),
loginMethodSelection: (context) => LoginMethodSelectionPage(ModalRoute.of(context)!.settings.arguments as String),
completeProfile: (context) => CompleteProfilePage(ModalRoute.of(context)!.settings.arguments as RegisterUserRespModel),
verifyPassword: (context) => VerifyPasswordPage(),
confirmNewPasswordPage: (context) =>
ConfirmNewPasswordPage(ModalRoute
.of(context)!
.settings
.arguments as String),
forgetPasswordMethodPage: (context) =>
ForgetPasswordMethodPage(ModalRoute
.of(context)!
.settings
.arguments as String),
confirmNewPasswordPage: (context) => ConfirmNewPasswordPage(ModalRoute.of(context)!.settings.arguments as String),
forgetPasswordMethodPage: (context) => ForgetPasswordMethodPage(ModalRoute.of(context)!.settings.arguments as String),
changeMobilePage: (context) => ChangeMobilePage(),
changeEmailPage: (context) => const ChangeEmailPage(),
updateUserDetails: (context) => const UpdateUserDetails(),
@ -221,66 +203,30 @@ class AppRoutes {
providerLicensePage: (context) => const ProviderLicensePage(),
// common pages
AppRoutes.adsDetailView: (context) =>
AdsDetailView(adDetails: ModalRoute
.of(context)!
.settings
.arguments as AdDetailsModel),
AppRoutes.adsDetailView: (context) => AdsDetailView(adDetails: ModalRoute.of(context)!.settings.arguments as AdDetailsModel),
AppRoutes.createAdView: (context) => const CreateAdView(),
AppRoutes.adsFilterView: (context) => const AdsFilterView(),
AppRoutes.selectAdTypeView: (context) =>
SelectAdTypeView(arguments: ModalRoute
.of(context)!
.settings
.arguments as List<dynamic>),
AppRoutes.chatView: (context) =>
ChatView(chatViewArguments: ModalRoute
.of(context)!
.settings
.arguments as ChatViewArguments),
AppRoutes.adsBuyerChatsListView: (context) =>
AdsBuyerChatsView(buyersListViewArguments: ModalRoute
.of(context)!
.settings
.arguments as List<BuyersChatForAdsModel>),
AppRoutes.selectAdTypeView: (context) => SelectAdTypeView(arguments: ModalRoute.of(context)!.settings.arguments as List<dynamic>),
AppRoutes.chatView: (context) => ChatView(chatViewArguments: ModalRoute.of(context)!.settings.arguments as ChatViewArguments),
AppRoutes.adsBuyerChatsListView: (context) => AdsBuyerChatsView(buyersListViewArguments: ModalRoute.of(context)!.settings.arguments as List<BuyersChatForAdsModel>),
AppRoutes.settingOptionsFaqs: (context) => const SettingOptionsFAQs(),
AppRoutes.settingOptionsContactUs: (context) => const SettingOptionsContactUs(),
AppRoutes.settingOptionsAppInfo: (context) => const SettingOptionsAppInfo(),
AppRoutes.settingOptionsTermsAndConditions: (context) => const SettingOptionsTermsAndConditions(),
AppRoutes.settingOptionsInviteFriends: (context) => const SettingOptionsInviteFriends(),
AppRoutes.paymentMethodsView: (context) =>
PaymentMethodsView(paymentType: ModalRoute
.of(context)!
.settings
.arguments as PaymentTypes),
AppRoutes.paymentMethodsView: (context) => PaymentMethodsView(paymentType: ModalRoute.of(context)!.settings.arguments as PaymentTypes),
//Requests
AppRoutes.requestsDetailPage: (context) =>
RequestDetailPage(requestDetailPageArguments: ModalRoute
.of(context)!
.settings
.arguments as RequestDetailPageArguments),
AppRoutes.requestsDetailPage: (context) => RequestDetailPage(requestDetailPageArguments: ModalRoute.of(context)!.settings.arguments as RequestDetailPageArguments),
AppRoutes.createRequestPage: (context) => const CreateRequestPage(),
AppRoutes.offersListPage: (context) =>
OfferListPage(requestId: ModalRoute
.of(context)!
.settings
.arguments as int),
AppRoutes.offersListPage: (context) => OfferListPage(requestId: ModalRoute.of(context)!.settings.arguments as int),
AppRoutes.reviewRequestOffer: (context) => const ReviewRequestOffer(),
AppRoutes.requestsFilterView: (context) => const RequestsFilterView(),
//MediaViewer
AppRoutes.mediaViewerScreen: (context) =>
MediaViewerScreen(images: ModalRoute
.of(context)!
.settings
.arguments as List<MessageImageModel>),
AppRoutes.mediaViewerScreen: (context) => MediaViewerScreen(images: ModalRoute.of(context)!.settings.arguments as List<MessageImageModel>),
// ChatsList Provider
AppRoutes.generalChatsListForProvider: (context) =>
OfferListPage(requestId: ModalRoute
.of(context)!
.settings
.arguments as int),
AppRoutes.generalChatsListForProvider: (context) => OfferListPage(requestId: ModalRoute.of(context)!.settings.arguments as int),
//Shipping
AppRoutes.shippingManagementView: (context) => const ShippingManagementView(),

@ -6,7 +6,7 @@ import 'dart:ui';
import 'package:easy_localization/easy_localization.dart' show AssetLoader;
class CodegenLoader extends AssetLoader {
class CodegenLoader extends AssetLoader{
const CodegenLoader();
@override
@ -14,7 +14,7 @@ class CodegenLoader extends AssetLoader {
return Future.value(mapLocales[locale.toString()]);
}
static const Map<String, dynamic> ar_SA = {
static const Map<String,dynamic> ar_SA = {
"firstTimeLogIn": "تسجيل الدخول لأول مره",
"signUp": "التسجيل",
"changeMobile": "تغيير رقم الجوال",
@ -98,7 +98,11 @@ class CodegenLoader extends AssetLoader {
"msg_named": "{} are written in the {lang} language",
"clickMe": "انقر فوق لي",
"profile": {
"reset_password": {"label": "إعادة تعيين كلمة المرور", "username": "اسم المستخدم", "password": "كلمة المرور"}
"reset_password": {
"label": "إعادة تعيين كلمة المرور",
"username": "اسم المستخدم",
"password": "كلمة المرور"
}
},
"clicked": {
"zero": "You clicked {} times!",
@ -108,11 +112,21 @@ class CodegenLoader extends AssetLoader {
"many": "You clicked {} times!",
"other": "You clicked {} times!"
},
"amount": {"zero": "Your amount : {} ", "one": "Your amount : {} ", "two": "Your amount : {} ", "few": "Your amount : {} ", "many": "Your amount : {} ", "other": "Your amount : {} "},
"amount": {
"zero": "Your amount : {} ",
"one": "Your amount : {} ",
"two": "Your amount : {} ",
"few": "Your amount : {} ",
"many": "Your amount : {} ",
"other": "Your amount : {} "
},
"gender": {
"male": "Hi man ;) ",
"female": "Hello girl :)",
"with_arg": {"male": "Hi man ;) {}", "female": "Hello girl :) {}"}
"with_arg": {
"male": "Hi man ;) {}",
"female": "Hello girl :) {}"
}
},
"reset_locale": "إعادة ضبط اللغة",
"welcomeDes": "أنت مكان واحد لكل ما تحتاجه سيارتك",
@ -775,8 +789,7 @@ class CodegenLoader extends AssetLoader {
"selectBranchToCopyServices": "حدد الفرع لنسخ العناصر الخاصة بهم إلى هذا الفرع. يمكنك تعديل الاختيار في أي وقت.",
"tapToSeeItems": "اضغط لرؤية العناصر",
"tapToSelect": "اضغط للاختيار",
"noteCopyItemsExplanation":
"ملاحظة: ستتمكن من نسخ العناصر من خدمة إلى أخرى في الفئة المحددة. يجب عليك إنشاء الخدمات أولاً ويجب أن تكون معتمدة. ثم ستتمكن من الحصول على الخدمات المتاحة التي يمكنك نسخ جميع العناصر منها أو تحديد العناصر التي تريد نسخها.",
"noteCopyItemsExplanation": "ملاحظة: ستتمكن من نسخ العناصر من خدمة إلى أخرى في الفئة المحددة. يجب عليك إنشاء الخدمات أولاً ويجب أن تكون معتمدة. ثم ستتمكن من الحصول على الخدمات المتاحة التي يمكنك نسخ جميع العناصر منها أو تحديد العناصر التي تريد نسخها.",
"requestCreatedOn": "تم إنشاء الطلب في",
"online": "عبر الإنترنت",
"deliveryStatus": "حالة توصيلك / الشحن هي:",
@ -788,17 +801,20 @@ class CodegenLoader extends AssetLoader {
"tapToView": "انقر لعرض",
"noServicesAvailableToCopy": "لا توجد خدمات متاحة في هذا الفرع لنسخها.",
"copySelectedItems": "نسخ العناصر المحددة",
"companyNameMandatory": "اسم الشركة إلزامي",
"noOfInvites": "عدد الدعوات",
"noSpecialServicesAvailable": "لا توجد خدمات خاصة متاحة للمنطقة المحددة.",
"customService": "الخدمة المخصصة",
"selectServiceDetails": "اختر تفاصيل الخدمة",
"addServiceDetails": "أضف تفاصيل الخدمة",
"companyNameMandatory": "اسم الشركة إلزامي",
"connectionProblem": "مشكلة في الاتصال",
"pleaseCheckConnection": "يرجى التحقق من اتصالك بالإنترنت والمحاولة مرة أخرى",
"ok": "نعم"
};
static const Map<String, dynamic> en_US = {
"ok": "نعم",
"continueAsGuest": "الاستمرار كضيف",
"loginToViewAppointments": "الرجاء تسجيل الدخول لعرض المواعيد",
"itemType": "غرض"
};
static const Map<String,dynamic> en_US = {
"firstTimeLogIn": "First Time Log In",
"signUp": "Sign Up",
"changeMobile": "Change Mobile",
@ -882,7 +898,11 @@ class CodegenLoader extends AssetLoader {
"msg_named": "{} are written in the {lang} language",
"clickMe": "Click me",
"profile": {
"reset_password": {"label": "Reset Password", "username": "Username", "password": "password"}
"reset_password": {
"label": "Reset Password",
"username": "Username",
"password": "password"
}
},
"clicked": {
"zero": "You clicked {} times!",
@ -892,11 +912,21 @@ class CodegenLoader extends AssetLoader {
"many": "You clicked {} times!",
"other": "You clicked {} times!"
},
"amount": {"zero": "Your amount : {} ", "one": "Your amount : {} ", "two": "Your amount : {} ", "few": "Your amount : {} ", "many": "Your amount : {} ", "other": "Your amount : {} "},
"amount": {
"zero": "Your amount : {} ",
"one": "Your amount : {} ",
"two": "Your amount : {} ",
"few": "Your amount : {} ",
"many": "Your amount : {} ",
"other": "Your amount : {} "
},
"gender": {
"male": "Hi man ;) ",
"female": "Hello girl :)",
"with_arg": {"male": "Hi man ;) {}", "female": "Hello girl :) {}"}
"with_arg": {
"male": "Hi man ;) {}",
"female": "Hello girl :) {}"
}
},
"reset_locale": "Reset Language",
"welcomeDes": "You one stop place all your car needs",
@ -1542,8 +1572,7 @@ class CodegenLoader extends AssetLoader {
"selectBranchToCopyServices": "Select the branch to copy their items to this branch. You can modify the selection at any time.",
"tapToSelect": "Tap to select",
"tapToSeeItems": "Tap to see items",
"noteCopyItemsExplanation":
"Note: You will be able to copy items from one service to another in a selected category. You must create the services first and they should be approved. Then you will be able to get the available services from which you can copy all or selected items.",
"noteCopyItemsExplanation": "Note: You will be able to copy items from one service to another in a selected category. You must create the services first and they should be approved. Then you will be able to get the available services from which you can copy all or selected items.",
"requestCreatedOn": "Request created on",
"online": "Online",
"searchByCreatedDate": "Search By Created Date",
@ -1571,14 +1600,17 @@ class CodegenLoader extends AssetLoader {
"noServicesAvailableToCopy": "There are no services available in this branch to copy.",
"copySelectedItems": "Copy Selected Items",
"companyNameMandatory": "Company Name is mandatory",
"connectionProblem": "Connection Problem",
"pleaseCheckConnection": "Please check your internet connection and try again.",
"ok": "Ok",
"noOfInvites": "No of invites",
"noSpecialServicesAvailable": "There are no special services available for the selected region.",
"customService": "Custom Service",
"selectServiceDetails": "Select service details",
"addServiceDetails": "Add service details"
};
static const Map<String, Map<String, dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
"addServiceDetails": "Add service details",
"connectionProblem": "Connection Problem",
"pleaseCheckConnection": "Please check your internet connection and try again.",
"ok": "Ok",
"continueAsGuest": "Continue as a guest",
"loginToViewAppointments": "Please Login to View Appointments",
"itemType": "Item Type"
};
static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
}

@ -764,14 +764,17 @@ abstract class LocaleKeys {
static const tapToView = 'tapToView';
static const noServicesAvailableToCopy = 'noServicesAvailableToCopy';
static const copySelectedItems = 'copySelectedItems';
static const companyNameMandatory = 'companyNameMandatory';
static const noOfInvites = 'noOfInvites';
static const noSpecialServicesAvailable = 'noSpecialServicesAvailable';
static const customService = 'customService';
static const selectServiceDetails = 'selectServiceDetails';
static const addServiceDetails = 'addServiceDetails';
static const companyNameMandatory = 'companyNameMandatory';
static const connectionProblem = 'connectionProblem';
static const pleaseCheckConnection = 'pleaseCheckConnection';
static const ok = 'ok';
static const continueAsGuest = 'continueAsGuest';
static const loginToViewAppointments = 'loginToViewAppointments';
static const itemType = 'itemType';
}

@ -12,8 +12,22 @@ class ShippingRequestModel {
String? createdOn;
int? customerID;
String? customerName;
int? vehicleTypeID;
String? vehicleType;
ShippingRequestModel({this.id, this.requestID, this.request, this.shippingStatus, this.deliveredOn, this.comment, this.createdOn, this.customerID, this.customerName});
ShippingRequestModel({
this.id,
this.requestID,
this.request,
this.shippingStatus,
this.deliveredOn,
this.comment,
this.createdOn,
this.customerID,
this.customerName,
this.vehicleTypeID,
this.vehicleType,
});
ShippingRequestModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
@ -26,22 +40,8 @@ class ShippingRequestModel {
createdOn = json['createdOn'];
customerID = json['customerID'];
customerName = json['customerName'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['requestID'] = requestID;
if (request != null) {
data['request'] = request!.toJson();
}
data['shippingStatus'] = shippingStatus;
data['deliveredOn'] = deliveredOn;
data['comment'] = comment;
data['createdOn'] = createdOn;
data['customerID'] = customerID;
data['customerName'] = customerName;
return data;
vehicleTypeID = json['vehicleTypeID'];
vehicleType = json['vehicleType'];
}
}

@ -27,13 +27,13 @@ abstract class PaymentService {
class PaymentServiceImp implements PaymentService {
MyInAppBrowser? myInAppBrowser;
var inAppBrowserOptions = InAppBrowserClassSettings(
webViewSettings: InAppWebViewSettings(
useShouldOverrideUrlLoading: false,
transparentBackground: false,
isInspectable: false,
applePayAPIEnabled: true,
cacheEnabled: false,
allowsBackForwardNavigationGestures: false,
),
browserSettings: InAppBrowserSettings(
hideUrlBar: true,
@ -42,7 +42,7 @@ class PaymentServiceImp implements PaymentService {
hideToolbarBottom: true,
hideToolbarTop: false,
hideCloseButton: false,
allowGoBackWithBackButton: true,
allowGoBackWithBackButton: false,
toolbarBottomBackgroundColor: Colors.black,
closeButtonColor: Colors.white,
presentationStyle: ModalPresentationStyle.FULL_SCREEN,

@ -344,7 +344,9 @@ class AdVM extends BaseVM {
pageIndexForMyAds = 1;
hasMoreDataForMyAds = true;
setState(ViewState.busy);
if (!AppState().getIsViewOnly) {
myAds = await adsRepo.getAllAds(isMyAds: true);
}
myAdsFilteredList = myAds;
final myActiveAds = myAds.where((element) => element.adPostStatus == AdPostStatus.active).toList();
myActiveAdsForHome = myActiveAds.length >= 3 ? myActiveAds.take(3).toList() : myActiveAds;

@ -64,9 +64,6 @@ class DashboardVmCustomer extends BaseVM {
RequestsVM requestsVM = Provider.of<RequestsVM>(context, listen: false);
ChatVM chatVM = Provider.of<ChatVM>(context, listen: false);
appointmentsVM.populateBranchesFilterList();
appointmentsVM.populateAppointmentsFilterList();
adVM.populateAdsFilterList();

@ -37,6 +37,7 @@ class DashboardVMProvider extends BaseVM {
void onNavbarTapped(int index) async {
logger.i(AppState().getDeviceToken);
selectedNavbarBarIndex = index;
notifyListeners();
}

@ -136,7 +136,7 @@ class PaymentVM extends ChangeNotifier {
}
},
onSuccess: () async {
Utils.showToast("Verifying Payment..");
// Utils.showToast("Verifying Payment..");
switch (paymentTypeEnum) {
case PaymentTypes.subscription:

@ -65,7 +65,7 @@ class AdsListWidget extends StatelessWidget {
isAdsFragment: isAdsFragment,
shouldShowAdStatus: shouldShowAdStatus,
).onPress(() => navigateWithName(context, AppRoutes.adsDetailView, arguments: adsList[index])).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword);
navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
});
},
separatorBuilder: (BuildContext context, int index) {

@ -59,7 +59,7 @@ class AdsFragment extends StatelessWidget {
})
],
).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword);
navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}),
body: SizedBox(
width: double.infinity,
@ -91,8 +91,8 @@ class AdsFragment extends StatelessWidget {
},
),
),
if(!AppState().getIsViewOnly) 12.width,
if(!AppState().getIsViewOnly) Expanded(
12.width,
Expanded(
child: ShowFillButton(
isFilled: !adVM.isExploreAdsTapped,
txtColor: !adVM.isExploreAdsTapped ? MyColors.white : MyColors.darkTextColor,
@ -102,7 +102,9 @@ class AdsFragment extends StatelessWidget {
onPressed: () {
adVM.updateIsExploreAds(false);
},
),
).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}),
),
],
).horPaddingMain(),
@ -118,8 +120,7 @@ class AdsFragment extends StatelessWidget {
needLeftPadding: false,
).paddingOnly(left: 21),
]
] else
...[
] else ...[
16.height,
FiltersList(
filterList: adVM.myAdsFilterOptions,
@ -138,15 +139,10 @@ class AdsFragment extends StatelessWidget {
child: RefreshIndicator(
onRefresh: () async {
if (adVM.isExploreAdsTapped) {
int vehicleBrandId = adVM.exploreAdsFilterOptions
.firstWhere((element) => element.isSelected)
.id;
int vehicleBrandId = adVM.exploreAdsFilterOptions.firstWhere((element) => element.isSelected).id;
adVM.applyFilterOnExploreAds(vehicleBrandId: vehicleBrandId);
} else {
AdPostStatus adPostStatusEnum = adVM.myAdsFilterOptions
.firstWhere((element) => element.isSelected)
.id
.toAdPostEnum();
AdPostStatus adPostStatusEnum = adVM.myAdsFilterOptions.firstWhere((element) => element.isSelected).id.toAdPostEnum();
adVM.applyFilterOnMyAds(adPostStatusEnum: adPostStatusEnum);
}
},
@ -158,10 +154,7 @@ class AdsFragment extends StatelessWidget {
adsList: getAdsList(adVM),
hasMoreData: adVM.isExploreAdsTapped ? adVM.hasMoreDataForExploreAds : adVM.hasMoreDataForMyAds,
onFetchMoreAds: () async {
AdPostStatus adPostStatusEnum = adVM.myAdsFilterOptions
.firstWhere((element) => element.isSelected)
.id
.toAdPostEnum();
AdPostStatus adPostStatusEnum = adVM.myAdsFilterOptions.firstWhere((element) => element.isSelected).id.toAdPostEnum();
if (adVM.isExploreAdsTapped) {
await adVM.fetchMoreExploreAds();
@ -197,14 +190,12 @@ class AdsFragment extends StatelessWidget {
}
}
navigateWithName(context, AppRoutes.selectAdTypeView, arguments: [injector
.get<AppState>()
.currentAppType == AppType.provider, false, -1]);
navigateWithName(context, AppRoutes.selectAdTypeView, arguments: [injector.get<AppState>().currentAppType == AppType.provider, false, -1]);
},
backgroundColor: MyColors.darkPrimaryColor,
child: const Icon(Icons.add, color: MyColors.white),
).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword);
navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}),
);
},

@ -95,7 +95,7 @@ class MyRequestsFragment extends StatelessWidget {
})
],
).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword);
navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}),
body: Container(
color: MyColors.backgroundColor,
@ -178,7 +178,7 @@ class MyRequestsFragment extends StatelessWidget {
navigateWithName(context, AppRoutes.offersListPage, arguments: request.id);
}
}).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword);
navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
}),
);
},
@ -201,7 +201,7 @@ class MyRequestsFragment extends StatelessWidget {
color: MyColors.white,
),
).toViewOnly(context, onTap: () {
navigateWithName(context, AppRoutes.loginWithPassword);
navigateWithName(context, AppRoutes.loginWithPassword, arguments: false);
})
: null,
);

@ -186,6 +186,9 @@ class _ShippingManagementViewState extends State<ShippingManagementView> {
),
("${shippingRequest.request!.brand} ${shippingRequest.request!.model} | ${shippingRequest.requestID.toString()}").toText(fontSize: 16),
(shippingRequest.request!.description ?? "").toText(color: MyColors.lightTextColor, fontSize: 12, fontWeight: MyFonts.Medium),
if (shippingRequest.vehicleType != null && shippingRequest.vehicleType!.isNotEmpty) ...[
("${LocaleKeys.itemType.tr()}: " "${shippingRequest.vehicleType}" ?? "").toText(color: MyColors.lightTextColor, fontSize: 12, fontWeight: MyFonts.Medium),
],
if (shippingRequest.comment != null && shippingRequest.comment!.isNotEmpty) ...[
("${LocaleKeys.comment.tr()}: ${shippingRequest.comment ?? ""}").toText(color: MyColors.lightTextColor, fontSize: 12, fontWeight: MyFonts.Medium),
],

@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:developer';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
@ -21,7 +22,9 @@ import 'package:provider/provider.dart';
import '../../utils/enums.dart';
class LoginWithPassword extends StatefulWidget {
const LoginWithPassword({Key? key}) : super(key: key);
final bool isRemoveBackButton;
const LoginWithPassword({super.key, this.isRemoveBackButton = true});
@override
State<LoginWithPassword> createState() => _LoginWithPasswordState();
@ -84,7 +87,7 @@ class _LoginWithPasswordState extends State<LoginWithPassword> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: const CustomAppBar(isRemoveBackButton: true, title: ""),
appBar: CustomAppBar(isRemoveBackButton: widget.isRemoveBackButton, title: ""),
body: Container(
width: double.infinity,
height: double.infinity,

@ -22,7 +22,7 @@ import 'package:sizer/sizer.dart';
import '../../theme/colors.dart';
class RegisterSelectionPage extends StatefulWidget {
const RegisterSelectionPage({Key? key}) : super(key: key);
const RegisterSelectionPage({super.key});
@override
State<RegisterSelectionPage> createState() => _RegisterSelectionPageState();
@ -59,14 +59,14 @@ class _RegisterSelectionPageState extends State<RegisterSelectionPage> {
SvgPicture.asset(MyAssets.logo),
Utils.mFlex(4),
LocaleKeys.welcomeMessage.tr().toText(
fontSize: 20,
letterSpacing: -1.44,
fontSize: 22,
letterSpacing: -1,
),
10.height,
LocaleKeys.welcomeDes.tr().toText(
color: MyColors.lightTextColor,
fontSize: 14,
fontSize: 16,
height: 23 / 24,
letterSpacing: -0.48,
),
Utils.mFlex(1),
ShowFillButton(
@ -93,30 +93,22 @@ class _RegisterSelectionPageState extends State<RegisterSelectionPage> {
),
20.height,
ShowFillButton(
title: "Guest View",
maxWidth: double.infinity,
horizontalMargin: 20,
Utils.mFlex(3),
// 10.height,
if (AppState().currentAppType == AppType.customer) ...[
TextButton(
onPressed: () {
appState.setIsViewOnly = true;
AppState().setUser = User(data: UserData(userInfo: GuestConsts().userInfo, accessToken: null, expiryDate: DateTime.now()));
navigateReplaceWithName(context, AppRoutes.dashboard);
},
child: LocaleKeys.continueAsGuest.tr().toText(color: MyColors.darkTextColor, fontSize: 18),
),
10.height,
Utils.mFlex(3),
// TextButton(
// onPressed: () {},
// child: const Text(
// "Continue as Guest",
// style: TextStyle(
// color: MyColors.darkPrimaryColor,
// fontWeight: FontWeight.bold,
// decoration: TextDecoration.underline,
// ),
// ),
// ),
// 10.height,
],
TextButton(
onPressed: () {},
child: Text(

@ -9,9 +9,9 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
class CustomBottomNavbar extends StatelessWidget {
final int selectedNavbarBarIndex;
final Function(int) onSelected;
bool isProvider;
final bool isProvider;
CustomBottomNavbar({Key? key, required this.onSelected, required this.selectedNavbarBarIndex, this.isProvider = false}) : super(key: key);
const CustomBottomNavbar({super.key, required this.onSelected, required this.selectedNavbarBarIndex, this.isProvider = false});
@override
Widget build(BuildContext context) {

@ -18,7 +18,7 @@ class FiltersList extends StatelessWidget {
this.padding,
required this.filterList,
this.needLeftPadding = true,
this.showImages = true,
this.showImages = false,
required this.onFilterTapped,
});

@ -440,7 +440,7 @@ extension ViewOnlyExtension on Widget {
extension PreferredSizeWidgetViewOnlyExtension on PreferredSizeWidget {
PreferredSizeWidget toViewOnly(BuildContext context, {required Function() onTap}) {
return PreferredSize(
preferredSize: this.preferredSize,
preferredSize: preferredSize,
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {

Loading…
Cancel
Save