fixed Things before QA

aamir_dev
Faiz Hashmi 2 years ago
parent e7c6c044e0
commit 07a484ba39

@ -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/dashboard/widget/general_appointment_widget.dart';
import 'package:car_provider_app/views/settings/schedule/widgets/chips_picker_item.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/generated/locale_keys.g.dart';
import 'package:mc_common_app/models/general_models/generic_resp_model.dart'; import 'package:mc_common_app/models/general_models/generic_resp_model.dart';
import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:mc_common_app/view_models/service_view_model.dart';
@ -58,11 +60,16 @@ class _AddNewServiceAppointmentPageState extends State<AddNewServiceAppointmentP
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: MyColors.white,
appBar: CustomAppBar( appBar: CustomAppBar(
title: LocaleKeys.addService.tr(), title: LocaleKeys.addService.tr(),
), ),
body: Padding( body: Padding(
padding: const EdgeInsets.all(21.0), padding: const EdgeInsets.all(21.0),
child: Stack(
fit: StackFit.expand,
children: [
SingleChildScrollView(
child: Column( child: Column(
children: [ children: [
GeneralAppointmentWidget( GeneralAppointmentWidget(
@ -73,8 +80,7 @@ class _AddNewServiceAppointmentPageState extends State<AddNewServiceAppointmentP
onTap: () {}, onTap: () {},
), ),
12.height, 12.height,
Expanded( Consumer<ServiceVM>(
child: Consumer<ServiceVM>(
builder: (context, model, _) { builder: (context, model, _) {
return Column( return Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -139,7 +145,7 @@ class _AddNewServiceAppointmentPageState extends State<AddNewServiceAppointmentP
? Text(LocaleKeys.noServiceFound.tr()) ? Text(LocaleKeys.noServiceFound.tr())
: const CircularProgressIndicator(), : const CircularProgressIndicator(),
12.height, 12.height,
(service != null && pickedItems != null && pickedItems!.length > 0) (service != null && pickedItems != null && pickedItems!.isNotEmpty)
? ChipsPickerItem( ? ChipsPickerItem(
hint: LocaleKeys.selectItems.tr(), hint: LocaleKeys.selectItems.tr(),
itemsList: [...pickedItems ?? []], itemsList: [...pickedItems ?? []],
@ -165,7 +171,7 @@ class _AddNewServiceAppointmentPageState extends State<AddNewServiceAppointmentP
: service != null : service != null
? Text(LocaleKeys.noItemSelectedYet.tr()) ? Text(LocaleKeys.noItemSelectedYet.tr())
: const SizedBox(), : const SizedBox(),
if ((service != null && pickedItems != null && pickedItems!.length > 0)) if ((service != null && pickedItems != null && pickedItems!.isNotEmpty))
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -199,7 +205,18 @@ class _AddNewServiceAppointmentPageState extends State<AddNewServiceAppointmentP
), ),
], ],
).toWhiteContainer(width: double.infinity, allPading: 12), ).toWhiteContainer(width: double.infinity, allPading: 12),
Row( ],
);
},
),
],
),
),
Positioned(
bottom: 0,
left: 0,
right: 0,
child: Row(
children: [ children: [
Expanded( Expanded(
child: ShowFillButton( child: ShowFillButton(
@ -235,6 +252,7 @@ class _AddNewServiceAppointmentPageState extends State<AddNewServiceAppointmentP
if (res.messageStatus == 1) { if (res.messageStatus == 1) {
Utils.showToast(LocaleKeys.itemsAddedSuccessfully.tr()); Utils.showToast(LocaleKeys.itemsAddedSuccessfully.tr());
pop(context); pop(context);
pop(context);
} else { } else {
Utils.showToast(res.message.toString()); Utils.showToast(res.message.toString());
} }
@ -245,11 +263,7 @@ class _AddNewServiceAppointmentPageState extends State<AddNewServiceAppointmentP
), ),
), ),
], ],
), ).toWhiteContainer(width: double.infinity),
],
);
},
),
), ),
], ],
), ),

@ -38,7 +38,6 @@ class UpdateAppointmentPage extends StatelessWidget {
if (appointmentsVM.state == ViewState.busy) { if (appointmentsVM.state == ViewState.busy) {
return const Center(child: CircularProgressIndicator()); return const Center(child: CircularProgressIndicator());
} else { } else {
print(appointmentListModel.appointmentPaymentStatusEnum);
return Column( return Column(
children: [ children: [
Expanded( Expanded(
@ -191,6 +190,8 @@ class UpdateAppointmentPage extends StatelessWidget {
Utils.showLoading(context); Utils.showLoading(context);
await appointmentsVM.updateAppointmentStatus(appointmentId: appointmentListModel.id!, appointmentStatusEnum: AppointmentStatusEnum.workStarted); await appointmentsVM.updateAppointmentStatus(appointmentId: appointmentListModel.id!, appointmentStatusEnum: AppointmentStatusEnum.workStarted);
Utils.hideLoading(context); Utils.hideLoading(context);
pop(context);
// showMyBottomSheet( // showMyBottomSheet(
// context, // context,
// child: ShowCollectPaymentSheet( // child: ShowCollectPaymentSheet(
@ -211,6 +212,7 @@ class UpdateAppointmentPage extends StatelessWidget {
await appointmentsVM.updateAppointmentPaymentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentServicePaymentStatusID": 2}); await appointmentsVM.updateAppointmentPaymentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentServicePaymentStatusID": 2});
_updateAppointment(context, appointmentListModel.branchId ?? 0); _updateAppointment(context, appointmentListModel.branchId ?? 0);
Utils.hideLoading(context); Utils.hideLoading(context);
pop(context);
}, },
); );
} }
@ -224,6 +226,7 @@ class UpdateAppointmentPage extends StatelessWidget {
await appointmentsVM.updateAppointmentStatus(appointmentId: appointmentListModel.id!, appointmentStatusEnum: AppointmentStatusEnum.arrived); await appointmentsVM.updateAppointmentStatus(appointmentId: appointmentListModel.id!, appointmentStatusEnum: AppointmentStatusEnum.arrived);
_updateAppointment(context, appointmentListModel.branchId ?? 0); _updateAppointment(context, appointmentListModel.branchId ?? 0);
Utils.hideLoading(context); Utils.hideLoading(context);
pop(context);
}, },
); );
} }
@ -237,6 +240,7 @@ class UpdateAppointmentPage extends StatelessWidget {
await appointmentsVM.updateAppointmentPaymentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentServicePaymentStatusID": 4}); await appointmentsVM.updateAppointmentPaymentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentServicePaymentStatusID": 4});
_updateAppointment(context, appointmentListModel.branchId ?? 0); _updateAppointment(context, appointmentListModel.branchId ?? 0);
Utils.hideLoading(context); Utils.hideLoading(context);
pop(context);
}, },
); );
} }
@ -250,6 +254,7 @@ class UpdateAppointmentPage extends StatelessWidget {
await appointmentsVM.updateAppointmentStatus(appointmentId: appointmentListModel.id!, appointmentStatusEnum: AppointmentStatusEnum.visitCompleted); await appointmentsVM.updateAppointmentStatus(appointmentId: appointmentListModel.id!, appointmentStatusEnum: AppointmentStatusEnum.visitCompleted);
_updateAppointment(context, appointmentListModel.branchId ?? 0); _updateAppointment(context, appointmentListModel.branchId ?? 0);
Utils.hideLoading(context); Utils.hideLoading(context);
pop(context);
}, },
); );
} }

@ -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/models/services_models/item_model.dart';
import 'package:mc_common_app/theme/colors.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/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/extensions/extensions_widget.dart';
import 'package:mc_common_app/widgets/txt_field.dart'; import 'package:mc_common_app/widgets/txt_field.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -17,12 +18,7 @@ class SelectItemsSheet extends StatelessWidget {
Function(List<ItemData>) onSelectItems; Function(List<ItemData>) onSelectItems;
List<PickerItem>? list; List<PickerItem>? list;
SelectItemsSheet( SelectItemsSheet({Key? key, required this.serviceId, required this.onSelectItems, this.list}) : super(key: key);
{Key? key,
required this.serviceId,
required this.onSelectItems,
this.list})
: super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -34,7 +30,7 @@ class SelectItemsSheet extends StatelessWidget {
children: [ children: [
Expanded( Expanded(
child: Consumer<ItemsVM>( child: Consumer<ItemsVM>(
builder: (_, model, child) { builder: (_, itemsVM, child) {
return Padding( return Padding(
padding: const EdgeInsets.only(left: 20, right: 20, top: 6), padding: const EdgeInsets.only(left: 20, right: 20, top: 6),
child: Column( child: Column(
@ -42,19 +38,10 @@ class SelectItemsSheet extends StatelessWidget {
Row( Row(
children: [ children: [
Expanded( Expanded(
child: LocaleKeys.selectItems.tr() child: LocaleKeys.selectItems.tr().toText(fontSize: 24, isBold: true),
.toText(fontSize: 24, isBold: true),
), ),
Center( Center(
child: (model.serviceItems == null child: (itemsVM.serviceItems == null ? "0" : itemsVM.serviceItems!.data!.where((element) => element.isUpdateOrSelected == true).toList().length.toString()).toText(
? "0"
: model.serviceItems!.data!
.where((element) =>
element.isUpdateOrSelected == true)
.toList()
.length
.toString())
.toText(
fontSize: 10, fontSize: 10,
isBold: true, isBold: true,
color: Colors.white, color: Colors.white,
@ -68,50 +55,36 @@ class SelectItemsSheet extends StatelessWidget {
), ),
], ],
), ),
12.height, // 12.height,
TxtField( // TxtField(
hint: LocaleKeys.searchItems.tr(), // hint: LocaleKeys.searchItems.tr(),
onChanged: (v) {}, // onChanged: (v) {},
), // ),
12.height, 12.height,
Expanded( Expanded(
child: model.serviceItems?.data == null child: itemsVM.serviceItems?.data == null
? const Center(child: CircularProgressIndicator()) ? const Center(child: CircularProgressIndicator())
: model.serviceItems?.data!.length == 0 : itemsVM.serviceItems?.data!.length == 0
? Center(child: "No Item Found".toText()) ? Center(child: EmptyWidget(text: LocaleKeys.noItemstoShow.tr()))
: ListView.separated( : ListView.separated(
itemBuilder: itemBuilder: (BuildContext context, int index) {
(BuildContext context, int index) { return CheckboxListTile(
return Row( contentPadding: EdgeInsets.zero,
children: [ controlAffinity: ListTileControlAffinity.leading,
Checkbox( title: itemsVM.serviceItems!.data![index].name!.toText(fontSize: 16),
value: model subtitle: itemsVM.serviceItems!.data![index].price.toString().toText(fontSize: 14, color: MyColors.lightTextColor),
.serviceItems!
.data![index] value: itemsVM.serviceItems!.data![index].isUpdateOrSelected,
.isUpdateOrSelected,
onChanged: (bool? v) { onChanged: (bool? v) {
model.serviceItems!.data![index] itemsVM.serviceItems!.data![index].isUpdateOrSelected = v;
.isUpdateOrSelected = v; itemsVM.notifyListeners();
model.notifyListeners();
}, },
),
12.width,
Expanded(
child: model.serviceItems!
.data![index].name!
.toText(),
),
],
); );
}, },
separatorBuilder: separatorBuilder: (BuildContext context, int index) {
(BuildContext context, int index) { return const Divider(height: 1);
return const Divider(
height: 1,
);
}, },
itemCount: itemCount: itemsVM.serviceItems?.data?.length ?? 0,
model.serviceItems?.data?.length ?? 0,
), ),
), ),
], ],
@ -127,11 +100,11 @@ class SelectItemsSheet extends StatelessWidget {
onPressed: () { onPressed: () {
if (context.read<ItemsVM>().serviceItems != null) { if (context.read<ItemsVM>().serviceItems != null) {
List<ItemData> list = []; List<ItemData> list = [];
context.read<ItemsVM>().serviceItems!.data!.forEach((element) { for (var element in context.read<ItemsVM>().serviceItems!.data!) {
if (element.isUpdateOrSelected ?? false) { if (element.isUpdateOrSelected ?? false) {
list.add(element); list.add(element);
} }
}); }
onSelectItems(list); onSelectItems(list);
} }

@ -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/generated/locale_keys.g.dart';
import 'package:mc_common_app/models/appointments_models/appointment_list_model.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/theme/colors.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
@ -41,10 +42,7 @@ class GeneralAppointmentWidget extends StatelessWidget {
if (isNeedToShowItems) { if (isNeedToShowItems) {
itemsList = List.generate( itemsList = List.generate(
appointmentListModel.appointmentServicesList?.first.serviceItems?.length ?? 0, appointmentListModel.appointmentServicesList?.first.serviceItems?.length ?? 0,
(index) => (appointmentListModel.appointmentServicesList?.first.serviceItems?[index].name ?? "").toString().toText( (mIndex) => showItems((appointmentListModel.appointmentServicesList?.first.serviceItems?[mIndex].name ?? "").toString(), MyAssets.modificationsIcon),
color: MyColors.lightTextColor,
isBold: true,
),
); );
} }
return [ return [
@ -53,7 +51,7 @@ class GeneralAppointmentWidget extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
showServices( showServices(
appointmentListModel.appointmentServicesList![0].providerServiceDescription, appointmentListModel.appointmentServicesList!.first.providerServiceDescription,
MyAssets.modificationsIcon, MyAssets.modificationsIcon,
), ),
if (isNeedToShowItems) ...itemsList, if (isNeedToShowItems) ...itemsList,
@ -69,10 +67,11 @@ class GeneralAppointmentWidget extends StatelessWidget {
if (isNeedToShowItems) { if (isNeedToShowItems) {
itemsList = List.generate( itemsList = List.generate(
appointmentListModel.appointmentServicesList?[index].serviceItems?.length ?? 0, appointmentListModel.appointmentServicesList?[index].serviceItems?.length ?? 0,
(mIndex) => (" - ${appointmentListModel.appointmentServicesList?[index].serviceItems?[mIndex].name ?? ""}").toString().toText( // (mIndex) => (" - ${appointmentListModel.appointmentServicesList?[index].serviceItems?[mIndex].name ?? ""}").toString().toText(
color: MyColors.lightTextColor, // color: MyColors.lightTextColor,
isBold: true, // ),
),
(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), showServices(appointmentListModel.appointmentServicesList![index].providerServiceDescription, MyAssets.modificationsIcon),
if (isNeedToShowItems) ...itemsList, if (isNeedToShowItems) ...itemsList,
], ],
).paddingOnly(bottom: 4); ).paddingOnly(bottom: 6);
}, },
); );
@ -186,7 +185,7 @@ class GeneralAppointmentWidget extends StatelessWidget {
children: [ children: [
"${LocaleKeys.location.tr()}: ".toText(color: MyColors.lightTextColor), "${LocaleKeys.location.tr()}: ".toText(color: MyColors.lightTextColor),
2.width, 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, 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,
),
),
],
);
}
} }

@ -144,7 +144,7 @@ class BranchDetailPage extends StatelessWidget {
return actionWidget.paddingAll(21); return actionWidget.paddingAll(21);
} }
Widget buildServiceTileWidget(int pIndex, ServiceVM vmodel) { Widget buildServiceTileWidget(int pIndex, ServiceVM serviceVM) {
return Row( return Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
@ -166,7 +166,7 @@ class BranchDetailPage extends StatelessWidget {
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
vmodel.categories[pIndex].categoryName.toString().toText(fontSize: 16), serviceVM.categories[pIndex].categoryName.toString().toText(fontSize: 16),
], ],
), ),
8.height, 8.height,
@ -178,14 +178,16 @@ class BranchDetailPage extends StatelessWidget {
child: ListView.builder( child: ListView.builder(
itemBuilder: (context, index) { itemBuilder: (context, index) {
return Container( 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( .toText(
fontSize: 12, fontSize: 12,
color: MyColors.lightTextColor, color: MyColors.lightTextColor,
), ),
); );
}, },
itemCount: vmodel.categories[pIndex].services?.length, itemCount: serviceVM.categories[pIndex].services?.length,
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
@ -204,7 +206,7 @@ class BranchDetailPage extends StatelessWidget {
getBranchUsers(context); getBranchUsers(context);
return Scaffold( return Scaffold(
appBar: CustomAppBar(title: LocaleKeys.branchDetail.tr()), appBar: CustomAppBar(title: LocaleKeys.branchDetail.tr()),
body: Consumer<ServiceVM>(builder: (context, model, _) { body: Consumer<ServiceVM>(builder: (context, serviceVM, _) {
return SizedBox( return SizedBox(
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
@ -333,13 +335,13 @@ class BranchDetailPage extends StatelessWidget {
}), }),
ListView.separated( ListView.separated(
itemBuilder: (context, pIndex) { itemBuilder: (context, pIndex) {
return buildServiceTileWidget(pIndex, model).onPress(() { return buildServiceTileWidget(pIndex, serviceVM).onPress(() {
model.categories[pIndex].branchId = branchData.id.toString(); serviceVM.categories[pIndex].branchId = branchData.id.toString();
model.categories[pIndex].branchName = branchData.branchName.toString(); serviceVM.categories[pIndex].branchName = branchData.branchName.toString();
navigateWithName(context, ProviderAppRoutes.servicesList, arguments: model.categories[pIndex]); navigateWithName(context, ProviderAppRoutes.servicesList, arguments: serviceVM.categories[pIndex]);
}); });
}, },
itemCount: model.categories.length, itemCount: serviceVM.categories.length,
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
padding: const EdgeInsets.all(20), padding: const EdgeInsets.all(20),

@ -107,7 +107,7 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
onPressed: () async { onPressed: () async {
return deleteScheduleConfirmationSheet(index, scheduleVM, context); return deleteScheduleConfirmationSheet(index, scheduleVM, context);
}, },
icon: const Icon(Icons.delete), icon: const Icon(Icons.delete_outline),
color: Colors.red, color: Colors.red,
), ),
Padding( Padding(

@ -2,12 +2,11 @@ import 'package:flutter/material.dart';
import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/main.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/models/subscriptions_models/provider_subscription_model.dart';
import 'package:mc_common_app/models/subscriptions_models/subscription_model.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/theme/colors.dart';
import 'package:mc_common_app/utils/date_helper.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'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
class MySubscriptionsCard extends StatelessWidget { class MySubscriptionsCard extends StatelessWidget {
@ -90,10 +89,11 @@ class MySubscriptionsCard extends StatelessWidget {
fontSize: 29, fontSize: 29,
isBold: true, isBold: true,
letterSpacing: -1.77, letterSpacing: -1.77,
height: 1,
color: textColor, color: textColor,
), ),
2.width, 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),
], ],
), ),
), ),

Loading…
Cancel
Save