From 07a484ba396ef93fa7b3fb5f89f86f281d525fb9 Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Thu, 17 Oct 2024 16:11:49 +0300 Subject: [PATCH] fixed Things before QA --- .../add_new_service_appointment_page.dart | 360 +++++++++--------- .../appoinments/update_appointment_page.dart | 7 +- .../widget/select_items_sheet.dart | 89 ++--- .../widget/general_appointment_widget.dart | 39 +- .../settings/branch/branch_detail_page.dart | 22 +- .../schedule/schedules_list_page.dart | 2 +- .../widget/my_subscriptions_card.dart | 8 +- 7 files changed, 269 insertions(+), 258 deletions(-) diff --git a/lib/views/appoinments/add_new_service_appointment_page.dart b/lib/views/appoinments/add_new_service_appointment_page.dart index abbc34b..3b24bfc 100644 --- a/lib/views/appoinments/add_new_service_appointment_page.dart +++ b/lib/views/appoinments/add_new_service_appointment_page.dart @@ -2,6 +2,8 @@ import 'dart:async'; import 'package:car_provider_app/views/dashboard/widget/general_appointment_widget.dart'; import 'package:car_provider_app/views/settings/schedule/widgets/chips_picker_item.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/widgets.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/general_models/generic_resp_model.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; @@ -58,199 +60,211 @@ class _AddNewServiceAppointmentPageState extends State( - builder: (context, model, _) { - return Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, + SingleChildScrollView( + child: Column( + children: [ + GeneralAppointmentWidget( + appointmentListModel: widget.appointmentListModel, + isNeedTotalPayment: true, + isNeedToShowItems: true, + isNeedToShowToMoreText: false, + onTap: () {}, + ), + 12.height, + Consumer( + builder: (context, model, _) { + return Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - LocaleKeys.selectServicestoAdd.tr().toText( - fontSize: 18, - isBold: true, - ), - 12.height, Column( - crossAxisAlignment: CrossAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, children: [ - model.categoryDropList.isNotEmpty - ? DropdownField( - (DropValue value) async { - category = value; - service = null; - model.fetchProviderServices(widget.appointmentListModel.branchId.toString(), value.id.toString()); - }, - dropdownValue: category, - list: model.categoryDropList, - hint: LocaleKeys.selectServiceCategory.tr(), - ) - : const Center( - child: CircularProgressIndicator(), - ), + LocaleKeys.selectServicestoAdd.tr().toText( + fontSize: 18, + isBold: true, + ), 12.height, - model.servicesDropList.isNotEmpty - ? DropdownField( - (DropValue value) { - service = value; - pickedItems = null; - model.setState(ViewState.idle); - showMyBottomSheet( - context, - child: SelectItemsSheet( - serviceId: service?.id ?? 0, - onSelectItems: (List selectedList) { - this.selectedList.clear(); - this.selectedList = selectedList; - pickedItems = []; - for (var element in selectedList) { - pickedItems!.add( - PickerItem(id: element.id ?? 0, title: element.name ?? ""), - ); - } - model.notifyListeners(); - }, - ), - ); - }, - dropdownValue: service, - list: model.servicesDropList, - hint: LocaleKeys.defineServices.tr(), - ) - : category == null - ? Container() - : model.services != null && model.servicesDropList.isEmpty - ? Text(LocaleKeys.noServiceFound.tr()) - : const CircularProgressIndicator(), - 12.height, - (service != null && pickedItems != null && pickedItems!.length > 0) - ? ChipsPickerItem( - hint: LocaleKeys.selectItems.tr(), - itemsList: [...pickedItems ?? []], - onClick: () { - showMyBottomSheet( - context, - child: SelectItemsSheet( - serviceId: service?.id ?? 0, - list: pickedItems, - onSelectItems: (List selectedList) { - pickedItems = []; - for (var element in selectedList) { - pickedItems!.add( - PickerItem(id: element.id ?? 0, title: element.name ?? ""), - ); - } - model.notifyListeners(); - }, - ), - ); - }, - ) - : service != null - ? Text(LocaleKeys.noItemSelectedYet.tr()) - : const SizedBox(), - if ((service != null && pickedItems != null && pickedItems!.length > 0)) - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - 16.height, - LocaleKeys.totalAdditionalAmount.tr().toText( - fontSize: 14, - isBold: true, - color: MyColors.lightTextColor, + Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + model.categoryDropList.isNotEmpty + ? DropdownField( + (DropValue value) async { + category = value; + service = null; + model.fetchProviderServices(widget.appointmentListModel.branchId.toString(), value.id.toString()); + }, + dropdownValue: category, + list: model.categoryDropList, + hint: LocaleKeys.selectServiceCategory.tr(), + ) + : const Center( + child: CircularProgressIndicator(), ), - Row( - crossAxisAlignment: CrossAxisAlignment.end, + 12.height, + model.servicesDropList.isNotEmpty + ? DropdownField( + (DropValue value) { + service = value; + pickedItems = null; + model.setState(ViewState.idle); + showMyBottomSheet( + context, + child: SelectItemsSheet( + serviceId: service?.id ?? 0, + onSelectItems: (List selectedList) { + this.selectedList.clear(); + this.selectedList = selectedList; + pickedItems = []; + for (var element in selectedList) { + pickedItems!.add( + PickerItem(id: element.id ?? 0, title: element.name ?? ""), + ); + } + model.notifyListeners(); + }, + ), + ); + }, + dropdownValue: service, + list: model.servicesDropList, + hint: LocaleKeys.defineServices.tr(), + ) + : category == null + ? Container() + : model.services != null && model.servicesDropList.isEmpty + ? Text(LocaleKeys.noServiceFound.tr()) + : const CircularProgressIndicator(), + 12.height, + (service != null && pickedItems != null && pickedItems!.isNotEmpty) + ? ChipsPickerItem( + hint: LocaleKeys.selectItems.tr(), + itemsList: [...pickedItems ?? []], + onClick: () { + showMyBottomSheet( + context, + child: SelectItemsSheet( + serviceId: service?.id ?? 0, + list: pickedItems, + onSelectItems: (List selectedList) { + pickedItems = []; + for (var element in selectedList) { + pickedItems!.add( + PickerItem(id: element.id ?? 0, title: element.name ?? ""), + ); + } + model.notifyListeners(); + }, + ), + ); + }, + ) + : service != null + ? Text(LocaleKeys.noItemSelectedYet.tr()) + : const SizedBox(), + if ((service != null && pickedItems != null && pickedItems!.isNotEmpty)) + Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - calculatePrice().toString().toText( - fontSize: 29, - isBold: true, - ), - 2.width, - LocaleKeys.sar - .tr() - .toText( - fontSize: 16, + 16.height, + LocaleKeys.totalAdditionalAmount.tr().toText( + fontSize: 14, isBold: true, color: MyColors.lightTextColor, - ) - .paddingOnly(bottom: 5), + ), + Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + calculatePrice().toString().toText( + fontSize: 29, + isBold: true, + ), + 2.width, + LocaleKeys.sar + .tr() + .toText( + fontSize: 16, + isBold: true, + color: MyColors.lightTextColor, + ) + .paddingOnly(bottom: 5), + ], + ), ], ), - ], - ), + ], + ), ], - ), + ).toWhiteContainer(width: double.infinity, allPading: 12), ], - ).toWhiteContainer(width: double.infinity, allPading: 12), - Row( - children: [ - Expanded( - child: ShowFillButton( - title: LocaleKeys.cancel.tr(), - maxWidth: double.infinity, - isFilled: false, - txtColor: MyColors.redColor, - borderColor: MyColors.redColor, - onPressed: () { - if (pickedItems != null && pickedItems!.isNotEmpty) { - pickedItems!.clear(); - } - pop(context); - }, - ), - ), - 12.width, - Expanded( - child: ShowFillButton( - title: LocaleKeys.add.tr(), - maxWidth: double.infinity, - onPressed: () async { - if (pickedItems != null && pickedItems!.isNotEmpty) { - List items = []; - pickedItems?.forEach((element) { - items.add(element.id); - }); - Utils.showLoading(context); - var postParams = {"providerBranchID": widget.appointmentListModel.branchId, "appointmentID": widget.appointmentListModel.id, "serviceItemID": items}; - GenericRespModel res = await serviceVM!.addNewServiceInAppointment(postParams); - _updateAppointment(context, widget.appointmentListModel.branchId ?? 0); - Utils.hideLoading(context); - if (res.messageStatus == 1) { - Utils.showToast(LocaleKeys.itemsAddedSuccessfully.tr()); - pop(context); - } else { - Utils.showToast(res.message.toString()); - } - } else { - Utils.showToast(LocaleKeys.pleaseSelectItems.tr()); - } - }, - ), - ), - ], - ), - ], - ); - }, + ); + }, + ), + ], ), ), + Positioned( + bottom: 0, + left: 0, + right: 0, + child: Row( + children: [ + Expanded( + child: ShowFillButton( + title: LocaleKeys.cancel.tr(), + maxWidth: double.infinity, + isFilled: false, + txtColor: MyColors.redColor, + borderColor: MyColors.redColor, + onPressed: () { + if (pickedItems != null && pickedItems!.isNotEmpty) { + pickedItems!.clear(); + } + pop(context); + }, + ), + ), + 12.width, + Expanded( + child: ShowFillButton( + title: LocaleKeys.add.tr(), + maxWidth: double.infinity, + onPressed: () async { + if (pickedItems != null && pickedItems!.isNotEmpty) { + List items = []; + pickedItems?.forEach((element) { + items.add(element.id); + }); + Utils.showLoading(context); + var postParams = {"providerBranchID": widget.appointmentListModel.branchId, "appointmentID": widget.appointmentListModel.id, "serviceItemID": items}; + GenericRespModel res = await serviceVM!.addNewServiceInAppointment(postParams); + _updateAppointment(context, widget.appointmentListModel.branchId ?? 0); + Utils.hideLoading(context); + if (res.messageStatus == 1) { + Utils.showToast(LocaleKeys.itemsAddedSuccessfully.tr()); + pop(context); + pop(context); + } else { + Utils.showToast(res.message.toString()); + } + } else { + Utils.showToast(LocaleKeys.pleaseSelectItems.tr()); + } + }, + ), + ), + ], + ).toWhiteContainer(width: double.infinity), + ), ], ), ), diff --git a/lib/views/appoinments/update_appointment_page.dart b/lib/views/appoinments/update_appointment_page.dart index 7a2acf4..36a6fae 100644 --- a/lib/views/appoinments/update_appointment_page.dart +++ b/lib/views/appoinments/update_appointment_page.dart @@ -38,7 +38,6 @@ class UpdateAppointmentPage extends StatelessWidget { if (appointmentsVM.state == ViewState.busy) { return const Center(child: CircularProgressIndicator()); } else { - print(appointmentListModel.appointmentPaymentStatusEnum); return Column( children: [ Expanded( @@ -191,6 +190,8 @@ class UpdateAppointmentPage extends StatelessWidget { Utils.showLoading(context); await appointmentsVM.updateAppointmentStatus(appointmentId: appointmentListModel.id!, appointmentStatusEnum: AppointmentStatusEnum.workStarted); Utils.hideLoading(context); + pop(context); + // showMyBottomSheet( // context, // child: ShowCollectPaymentSheet( @@ -211,6 +212,7 @@ class UpdateAppointmentPage extends StatelessWidget { await appointmentsVM.updateAppointmentPaymentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentServicePaymentStatusID": 2}); _updateAppointment(context, appointmentListModel.branchId ?? 0); Utils.hideLoading(context); + pop(context); }, ); } @@ -224,6 +226,7 @@ class UpdateAppointmentPage extends StatelessWidget { await appointmentsVM.updateAppointmentStatus(appointmentId: appointmentListModel.id!, appointmentStatusEnum: AppointmentStatusEnum.arrived); _updateAppointment(context, appointmentListModel.branchId ?? 0); Utils.hideLoading(context); + pop(context); }, ); } @@ -237,6 +240,7 @@ class UpdateAppointmentPage extends StatelessWidget { await appointmentsVM.updateAppointmentPaymentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentServicePaymentStatusID": 4}); _updateAppointment(context, appointmentListModel.branchId ?? 0); Utils.hideLoading(context); + pop(context); }, ); } @@ -250,6 +254,7 @@ class UpdateAppointmentPage extends StatelessWidget { await appointmentsVM.updateAppointmentStatus(appointmentId: appointmentListModel.id!, appointmentStatusEnum: AppointmentStatusEnum.visitCompleted); _updateAppointment(context, appointmentListModel.branchId ?? 0); Utils.hideLoading(context); + pop(context); }, ); } diff --git a/lib/views/appoinments/widget/select_items_sheet.dart b/lib/views/appoinments/widget/select_items_sheet.dart index 32582f9..c1780ca 100644 --- a/lib/views/appoinments/widget/select_items_sheet.dart +++ b/lib/views/appoinments/widget/select_items_sheet.dart @@ -6,6 +6,7 @@ import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/services_models/item_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; +import 'package:mc_common_app/widgets/empty_widget.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/txt_field.dart'; import 'package:provider/provider.dart'; @@ -17,16 +18,11 @@ class SelectItemsSheet extends StatelessWidget { Function(List) onSelectItems; List? list; - SelectItemsSheet( - {Key? key, - required this.serviceId, - required this.onSelectItems, - this.list}) - : super(key: key); + SelectItemsSheet({Key? key, required this.serviceId, required this.onSelectItems, this.list}) : super(key: key); @override Widget build(BuildContext context) { - context.read().getServiceItems(serviceId,list: list); + context.read().getServiceItems(serviceId, list: list); return SizedBox( width: double.infinity, height: MediaQuery.of(context).size.height / 1.4, @@ -34,7 +30,7 @@ class SelectItemsSheet extends StatelessWidget { children: [ Expanded( child: Consumer( - builder: (_, model, child) { + builder: (_, itemsVM, child) { return Padding( padding: const EdgeInsets.only(left: 20, right: 20, top: 6), child: Column( @@ -42,19 +38,10 @@ class SelectItemsSheet extends StatelessWidget { Row( children: [ Expanded( - child: LocaleKeys.selectItems.tr() - .toText(fontSize: 24, isBold: true), + child: LocaleKeys.selectItems.tr().toText(fontSize: 24, isBold: true), ), Center( - child: (model.serviceItems == null - ? "0" - : model.serviceItems!.data! - .where((element) => - element.isUpdateOrSelected == true) - .toList() - .length - .toString()) - .toText( + child: (itemsVM.serviceItems == null ? "0" : itemsVM.serviceItems!.data!.where((element) => element.isUpdateOrSelected == true).toList().length.toString()).toText( fontSize: 10, isBold: true, color: Colors.white, @@ -68,50 +55,36 @@ class SelectItemsSheet extends StatelessWidget { ), ], ), - 12.height, - TxtField( - hint: LocaleKeys.searchItems.tr(), - onChanged: (v) {}, - ), + // 12.height, + // TxtField( + // hint: LocaleKeys.searchItems.tr(), + // onChanged: (v) {}, + // ), 12.height, Expanded( - child: model.serviceItems?.data == null + child: itemsVM.serviceItems?.data == null ? const Center(child: CircularProgressIndicator()) - : model.serviceItems?.data!.length == 0 - ? Center(child: "No Item Found".toText()) + : itemsVM.serviceItems?.data!.length == 0 + ? Center(child: EmptyWidget(text: LocaleKeys.noItemstoShow.tr())) : ListView.separated( - itemBuilder: - (BuildContext context, int index) { - return Row( - children: [ - Checkbox( - value: model - .serviceItems! - .data![index] - .isUpdateOrSelected, - onChanged: (bool? v) { - model.serviceItems!.data![index] - .isUpdateOrSelected = v; - model.notifyListeners(); - }, - ), - 12.width, - Expanded( - child: model.serviceItems! - .data![index].name! - .toText(), - ), - ], + itemBuilder: (BuildContext context, int index) { + return CheckboxListTile( + contentPadding: EdgeInsets.zero, + controlAffinity: ListTileControlAffinity.leading, + title: itemsVM.serviceItems!.data![index].name!.toText(fontSize: 16), + subtitle: itemsVM.serviceItems!.data![index].price.toString().toText(fontSize: 14, color: MyColors.lightTextColor), + + value: itemsVM.serviceItems!.data![index].isUpdateOrSelected, + onChanged: (bool? v) { + itemsVM.serviceItems!.data![index].isUpdateOrSelected = v; + itemsVM.notifyListeners(); + }, ); }, - separatorBuilder: - (BuildContext context, int index) { - return const Divider( - height: 1, - ); + separatorBuilder: (BuildContext context, int index) { + return const Divider(height: 1); }, - itemCount: - model.serviceItems?.data?.length ?? 0, + itemCount: itemsVM.serviceItems?.data?.length ?? 0, ), ), ], @@ -127,11 +100,11 @@ class SelectItemsSheet extends StatelessWidget { onPressed: () { if (context.read().serviceItems != null) { List list = []; - context.read().serviceItems!.data!.forEach((element) { + for (var element in context.read().serviceItems!.data!) { if (element.isUpdateOrSelected ?? false) { list.add(element); } - }); + } onSelectItems(list); } diff --git a/lib/views/dashboard/widget/general_appointment_widget.dart b/lib/views/dashboard/widget/general_appointment_widget.dart index daee6a6..c6daab6 100644 --- a/lib/views/dashboard/widget/general_appointment_widget.dart +++ b/lib/views/dashboard/widget/general_appointment_widget.dart @@ -5,6 +5,7 @@ import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/appointments_models/appointment_list_model.dart'; import 'package:mc_common_app/theme/colors.dart'; +import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:easy_localization/easy_localization.dart'; @@ -41,10 +42,7 @@ class GeneralAppointmentWidget extends StatelessWidget { if (isNeedToShowItems) { itemsList = List.generate( appointmentListModel.appointmentServicesList?.first.serviceItems?.length ?? 0, - (index) => (appointmentListModel.appointmentServicesList?.first.serviceItems?[index].name ?? "").toString().toText( - color: MyColors.lightTextColor, - isBold: true, - ), + (mIndex) => showItems((appointmentListModel.appointmentServicesList?.first.serviceItems?[mIndex].name ?? "").toString(), MyAssets.modificationsIcon), ); } return [ @@ -53,7 +51,7 @@ class GeneralAppointmentWidget extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ showServices( - appointmentListModel.appointmentServicesList![0].providerServiceDescription, + appointmentListModel.appointmentServicesList!.first.providerServiceDescription, MyAssets.modificationsIcon, ), if (isNeedToShowItems) ...itemsList, @@ -69,10 +67,11 @@ class GeneralAppointmentWidget extends StatelessWidget { if (isNeedToShowItems) { itemsList = List.generate( appointmentListModel.appointmentServicesList?[index].serviceItems?.length ?? 0, - (mIndex) => (" - ${appointmentListModel.appointmentServicesList?[index].serviceItems?[mIndex].name ?? ""}").toString().toText( - color: MyColors.lightTextColor, - isBold: true, - ), + // (mIndex) => (" - ${appointmentListModel.appointmentServicesList?[index].serviceItems?[mIndex].name ?? ""}").toString().toText( + // color: MyColors.lightTextColor, + // ), + + (mIndex) => showItems((appointmentListModel.appointmentServicesList?[index].serviceItems?[mIndex].name ?? "").toString(), MyAssets.modificationsIcon), ); } @@ -82,7 +81,7 @@ class GeneralAppointmentWidget extends StatelessWidget { showServices(appointmentListModel.appointmentServicesList![index].providerServiceDescription, MyAssets.modificationsIcon), if (isNeedToShowItems) ...itemsList, ], - ).paddingOnly(bottom: 4); + ).paddingOnly(bottom: 6); }, ); @@ -186,7 +185,7 @@ class GeneralAppointmentWidget extends StatelessWidget { children: [ "${LocaleKeys.location.tr()}: ".toText(color: MyColors.lightTextColor), 2.width, - (appointmentListModel.appointmentType == 1 ? LocaleKeys.home.tr() : LocaleKeys.workshop.tr()).toText( + (appointmentListModel.appointmentTypeEnum == AppointmentTypeEnum.home ? LocaleKeys.home.tr() : LocaleKeys.workshop.tr()).toText( fontSize: 12, ), ], @@ -304,4 +303,22 @@ class GeneralAppointmentWidget extends StatelessWidget { ], ); } + + Widget showItems(String title, String icon) { + return Row( + children: [ + SvgPicture.asset( + icon, + color: Colors.transparent, + ), + 8.width, + Flexible( + child: title.toText( + fontSize: 10, + color: MyColors.lightTextColor, + ), + ), + ], + ); + } } diff --git a/lib/views/settings/branch/branch_detail_page.dart b/lib/views/settings/branch/branch_detail_page.dart index 5901fdc..c4c7e07 100644 --- a/lib/views/settings/branch/branch_detail_page.dart +++ b/lib/views/settings/branch/branch_detail_page.dart @@ -144,7 +144,7 @@ class BranchDetailPage extends StatelessWidget { return actionWidget.paddingAll(21); } - Widget buildServiceTileWidget(int pIndex, ServiceVM vmodel) { + Widget buildServiceTileWidget(int pIndex, ServiceVM serviceVM) { return Row( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, @@ -166,7 +166,7 @@ class BranchDetailPage extends StatelessWidget { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - vmodel.categories[pIndex].categoryName.toString().toText(fontSize: 16), + serviceVM.categories[pIndex].categoryName.toString().toText(fontSize: 16), ], ), 8.height, @@ -178,14 +178,16 @@ class BranchDetailPage extends StatelessWidget { child: ListView.builder( itemBuilder: (context, index) { return Container( - child: (EasyLocalization.of(context)?.currentLocale?.countryCode == "SA" ? vmodel.categories[pIndex].services![index].serviceDescriptionN.toString() : vmodel.categories[pIndex].services![index].serviceDescription.toString()) + child: (EasyLocalization.of(context)?.currentLocale?.countryCode == "SA" + ? serviceVM.categories[pIndex].services![index].serviceDescriptionN.toString() + : serviceVM.categories[pIndex].services![index].serviceDescription.toString()) .toText( fontSize: 12, color: MyColors.lightTextColor, ), ); }, - itemCount: vmodel.categories[pIndex].services?.length, + itemCount: serviceVM.categories[pIndex].services?.length, physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, padding: EdgeInsets.zero, @@ -204,7 +206,7 @@ class BranchDetailPage extends StatelessWidget { getBranchUsers(context); return Scaffold( appBar: CustomAppBar(title: LocaleKeys.branchDetail.tr()), - body: Consumer(builder: (context, model, _) { + body: Consumer(builder: (context, serviceVM, _) { return SizedBox( width: double.infinity, height: double.infinity, @@ -333,13 +335,13 @@ class BranchDetailPage extends StatelessWidget { }), ListView.separated( itemBuilder: (context, pIndex) { - return buildServiceTileWidget(pIndex, model).onPress(() { - model.categories[pIndex].branchId = branchData.id.toString(); - model.categories[pIndex].branchName = branchData.branchName.toString(); - navigateWithName(context, ProviderAppRoutes.servicesList, arguments: model.categories[pIndex]); + return buildServiceTileWidget(pIndex, serviceVM).onPress(() { + serviceVM.categories[pIndex].branchId = branchData.id.toString(); + serviceVM.categories[pIndex].branchName = branchData.branchName.toString(); + navigateWithName(context, ProviderAppRoutes.servicesList, arguments: serviceVM.categories[pIndex]); }); }, - itemCount: model.categories.length, + itemCount: serviceVM.categories.length, physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, padding: const EdgeInsets.all(20), diff --git a/lib/views/settings/schedule/schedules_list_page.dart b/lib/views/settings/schedule/schedules_list_page.dart index c265d05..f7ecd8e 100644 --- a/lib/views/settings/schedule/schedules_list_page.dart +++ b/lib/views/settings/schedule/schedules_list_page.dart @@ -107,7 +107,7 @@ class _SchedulesListPageState extends State { onPressed: () async { return deleteScheduleConfirmationSheet(index, scheduleVM, context); }, - icon: const Icon(Icons.delete), + icon: const Icon(Icons.delete_outline), color: Colors.red, ), Padding( diff --git a/lib/views/subscriptions/widget/my_subscriptions_card.dart b/lib/views/subscriptions/widget/my_subscriptions_card.dart index 1803a72..c92aab8 100644 --- a/lib/views/subscriptions/widget/my_subscriptions_card.dart +++ b/lib/views/subscriptions/widget/my_subscriptions_card.dart @@ -2,12 +2,11 @@ import 'package:flutter/material.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'; -import 'package:mc_common_app/main.dart'; -import 'package:mc_common_app/models/subscriptions_models/provider_subscription_model.dart'; +import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/subscriptions_models/subscription_model.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/widgets/extensions/extensions_widget.dart'; class MySubscriptionsCard extends StatelessWidget { @@ -90,10 +89,11 @@ class MySubscriptionsCard extends StatelessWidget { fontSize: 29, isBold: true, letterSpacing: -1.77, + height: 1, color: textColor, ), 2.width, - " SAR/Month".toText(color: MyColors.lightTextColor, fontSize: 16, letterSpacing: -0.64), + " ${LocaleKeys.sar.tr()}/Month".toText(color: MyColors.lightTextColor, fontSize: 16, letterSpacing: -0.64).paddingOnly(bottom: 3), ], ), ),