Issues Fixed

aamir_dev
Faiz Hashmi 2 years ago
parent e73902b4dd
commit 7ba4a191bb

@ -7,6 +7,7 @@ import 'package:car_provider_app/view_models/schedule_view_model.dart';
import 'package:mc_common_app/repositories/setting_options_repo.dart'; import 'package:mc_common_app/repositories/setting_options_repo.dart';
import 'package:mc_common_app/repositories/shipping_repo.dart'; import 'package:mc_common_app/repositories/shipping_repo.dart';
import 'package:mc_common_app/services/firebase_service.dart'; import 'package:mc_common_app/services/firebase_service.dart';
import 'package:mc_common_app/utils/location/Location.dart';
import 'package:mc_common_app/view_models/dashboard_view_model_provider.dart'; import 'package:mc_common_app/view_models/dashboard_view_model_provider.dart';
import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:mc_common_app/view_models/service_view_model.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
@ -60,7 +61,9 @@ Future<void> main() async {
await Firebase.initializeApp(); await Firebase.initializeApp();
} }
ProviderAppDependencies.addDependencies(); ProviderAppDependencies.addDependencies();
injector.get<FirebaseMessagingService>().initializeNotifications(); injector.get<FirebaseMessagingService>().initializeNotifications().whenComplete(() {
injector.get<Location>().handleLocationPermission();
});
ProviderAppRoutes.routes.addAll(AppRoutes.routes); ProviderAppRoutes.routes.addAll(AppRoutes.routes);
runApp(MultiProvider( runApp(MultiProvider(
providers: [ providers: [

@ -31,6 +31,8 @@ class ScheduleVM extends BaseVM {
setState(ViewState.idle); setState(ViewState.idle);
} }
String currentSelectedBranchName = "";
Future<GenericRespModel> setScheduleInactive(int scheduleId, int branchId) async { Future<GenericRespModel> setScheduleInactive(int scheduleId, int branchId) async {
GenericRespModel val = await scheduleRepo.setScheduleInActive(scheduleId, branchId); GenericRespModel val = await scheduleRepo.setScheduleInActive(scheduleId, branchId);
if (val.messageStatus == 1) { if (val.messageStatus == 1) {

@ -73,7 +73,7 @@ class UpdateAppointmentPage extends StatelessWidget {
), ),
), ),
if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.cancelled) ...[ if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.cancelled) ...[
Utils.buildStatusContainer("Appointment Cancelled").paddingAll(10), Utils.buildStatusContainer(LocaleKeys.appointmentCancelled.tr()).paddingAll(10),
], ],
if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.booked) if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.booked)
Row( Row(

@ -64,7 +64,7 @@ class SelectItemsSheet extends StatelessWidget {
child: itemsVM.serviceItems?.data == null child: itemsVM.serviceItems?.data == null
? const Center(child: CircularProgressIndicator()) ? const Center(child: CircularProgressIndicator())
: itemsVM.serviceItems?.data!.length == 0 : itemsVM.serviceItems?.data!.length == 0
? Center(child: EmptyWidget(text: LocaleKeys.noItemstoShow.tr())) ? Center(child: EmptyWidget(text: LocaleKeys.noItemsToShow.tr()))
: ListView.separated( : ListView.separated(
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return CheckboxListTile( return CheckboxListTile(

@ -1,5 +1,6 @@
import 'dart:async'; import 'dart:async';
import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/config/provider_routes.dart';
import 'package:car_provider_app/view_models/schedule_view_model.dart';
import 'package:car_provider_app/views/branch_management/branch/dealer/widget/assign_dealer_user_sheet.dart'; import 'package:car_provider_app/views/branch_management/branch/dealer/widget/assign_dealer_user_sheet.dart';
import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart';
@ -305,6 +306,7 @@ class _BranchDetailPageState extends State<BranchDetailPage> {
Utils.showToast("Please wait for the branch verification."); Utils.showToast("Please wait for the branch verification.");
return; return;
} }
context.read<ScheduleVM>().currentSelectedBranchName = widget.branchData.branchName.toString();
navigateWithName(context, AppRoutes.schedulesList, arguments: widget.branchData.id.toString()); navigateWithName(context, AppRoutes.schedulesList, arguments: widget.branchData.id.toString());
}), }),
Row( Row(

@ -41,7 +41,10 @@ class _AssignDealerUserSheetState extends State<AssignDealerUserSheet> {
} }
getBranchUsers() { getBranchUsers() {
provider.getAllProviderDealers({"ServiceProviderBranchID": widget.branchId, "ServiceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? ""}); provider.getAllProviderDealers({
"ServiceProviderBranchID": widget.branchId,
"ServiceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? "",
});
} }
@override @override
@ -86,7 +89,6 @@ class _AssignDealerUserSheetState extends State<AssignDealerUserSheet> {
maxWidth: double.infinity, maxWidth: double.infinity,
maxHeight: 55, maxHeight: 55,
fontSize: 15, fontSize: 15,
onPressed: () async { onPressed: () async {
if (validation()) { if (validation()) {
Utils.showLoading(context); Utils.showLoading(context);
@ -143,6 +145,9 @@ class _AssignDealerUserSheetState extends State<AssignDealerUserSheet> {
Checkbox( Checkbox(
value: model.allProviderDealersList[index].isBranchUser, value: model.allProviderDealersList[index].isBranchUser,
onChanged: (v) { onChanged: (v) {
for (var element in model.allProviderDealersList) {
element.isBranchUser = false;
}
model.allProviderDealersList[index].isBranchUser = v ?? false; model.allProviderDealersList[index].isBranchUser = v ?? false;
model.notifyListeners(); model.notifyListeners();
}, },

@ -1,5 +1,4 @@
import 'dart:async'; import 'dart:async';
import 'package:car_provider_app/view_models/schedule_view_model.dart'; import 'package:car_provider_app/view_models/schedule_view_model.dart';
import 'package:car_provider_app/views/branch_management/schedule/widgets/chips_picker_item.dart'; import 'package:car_provider_app/views/branch_management/schedule/widgets/chips_picker_item.dart';
import 'package:car_provider_app/views/branch_management/schedule/widgets/select_days_sheet.dart'; import 'package:car_provider_app/views/branch_management/schedule/widgets/select_days_sheet.dart';
@ -8,7 +7,6 @@ import 'package:flutter/material.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/generated/locale_keys.g.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/main.dart';
import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; import 'package:mc_common_app/models/appointments_models/schedule_model.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/theme/colors.dart'; import 'package:mc_common_app/theme/colors.dart';
@ -17,6 +15,7 @@ import 'package:mc_common_app/utils/navigator.dart';
import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/utils/utils.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/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/dropdown/dropdow_field.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';
import 'package:mc_common_app/widgets/bottom_sheet.dart'; import 'package:mc_common_app/widgets/bottom_sheet.dart';
@ -30,7 +29,7 @@ class AddSchedulesPage extends StatefulWidget {
} }
class _AddSchedulesPageState extends State<AddSchedulesPage> { class _AddSchedulesPageState extends State<AddSchedulesPage> {
late ScheduleVM mModel; late ScheduleVM schedulevm;
String name = "", startDate = "", endDate = "", startTime = "", endTime = "", slotsTime = "", appointmentPerSlot = "", servicesGroupID = ""; String name = "", startDate = "", endDate = "", startTime = "", endTime = "", slotsTime = "", appointmentPerSlot = "", servicesGroupID = "";
@ -42,36 +41,71 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
endDate = DateHelper.formatAsYearMonthDay(scheduleData.toDate ?? DateTime.now()); endDate = DateHelper.formatAsYearMonthDay(scheduleData.toDate ?? DateTime.now());
startTime = scheduleData.startTime ?? ""; startTime = scheduleData.startTime ?? "";
endTime = scheduleData.endTime ?? ""; endTime = scheduleData.endTime ?? "";
slotsTime = scheduleData.slotDurationMinute.toString(); if (scheduleData.slotDurationMinute != null) {
int temp = scheduleData.slotDurationMinute!;
int index = minutesDrop.indexWhere((element) => element.id == temp);
if (index != -1) {
slotTimeId = temp;
slotsTime = "$temp Minutes";
} else {
temp = 20;
slotTimeId = temp;
slotsTime = "$temp Minutes";
}
}
appointmentPerSlot = scheduleData.perSlotAppointment.toString(); appointmentPerSlot = scheduleData.perSlotAppointment.toString();
// mModel.selectedServicesItems.clear(); // mModel.selectedServicesItems.clear();
scheduleData.scheduleServices?.forEach((element) { scheduleData.scheduleServices?.forEach((element) {
print("Services Elements"); schedulevm.selectedServicesItems.add(PickerItem(id: element.serviceProviderServiceId ?? 0, title: element.serviceDescription ?? ""));
print(element);
mModel.selectedServicesItems.add(PickerItem(id: element.serviceProviderServiceId ?? 0, title: element.serviceDescription ?? ""));
}); });
logger.d(mModel.selectedServicesItems.first.id); schedulevm.selectedDaysItems.clear();
mModel.selectedDaysItems.clear();
scheduleData.weeklyOffDays?.forEach((element) { scheduleData.weeklyOffDays?.forEach((element) {
for (var daysElement in initDaysList) { for (var daysElement in initDaysList) {
if (element.dayNumber == daysElement.id) { if (element.dayNumber == daysElement.id) {
daysElement.isSelected = true; daysElement.isSelected = true;
mModel.selectedDaysItems.add(daysElement); schedulevm.selectedDaysItems.add(daysElement);
} }
} }
}); });
if (scheduleData.appointmentType != null) {
if (scheduleData.appointmentType == 1) {
selectedScheduleLocationDrop = DropValue(1, 'Company Location', '');
} else {
selectedScheduleLocationDrop = DropValue(1, 'Company Location', '');
}
}
} }
int slotTimeId = 10;
List<DropValue> minutesDrop = [
DropValue(10, '10 Minutes', ''),
DropValue(15, '15 Minutes', ''),
DropValue(20, '20 Minutes', ''),
DropValue(25, '25 Minutes', ''),
DropValue(30, '30 Minutes', ''),
DropValue(50, '50 Minutes', ''),
DropValue(60, '60 Minutes', ''),
];
DropValue selectedScheduleLocationDrop = DropValue(-1, '', '');
List<DropValue> scheduleLocationIdDrop = [
DropValue(1, 'Company Location', ''),
DropValue(2, 'Customer Location', ''),
];
@override @override
void initState() { void initState() {
super.initState(); super.initState();
scheduleMicrotask(() { scheduleMicrotask(() {
mModel = context.read<ScheduleVM>(); schedulevm = context.read<ScheduleVM>();
scheduleData = ModalRoute.of(context)!.settings.arguments as ScheduleData; scheduleData = ModalRoute.of(context)!.settings.arguments as ScheduleData;
mModel.getAllServices(scheduleData.branchId, scheduleData); schedulevm.getAllServices(scheduleData.branchId, scheduleData);
mModel.selectedServicesItems = []; schedulevm.selectedServicesItems = [];
mModel.selectedDaysItems = []; schedulevm.selectedDaysItems = [];
if (scheduleData.id != null) { if (scheduleData.id != null) {
setEditData(); setEditData();
} }
@ -81,13 +115,11 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: const CustomAppBar( appBar: CustomAppBar(title: LocaleKeys.createGroupServices.tr()),
title: "Create Schedules",
),
body: SizedBox( body: SizedBox(
width: double.infinity, width: double.infinity,
child: Consumer<ScheduleVM>( child: Consumer<ScheduleVM>(
builder: (_, ScheduleVM model, child) { builder: (_, ScheduleVM scheduleVM, child) {
return Column( return Column(
children: [ children: [
Expanded( Expanded(
@ -95,6 +127,16 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
padding: const EdgeInsets.all(20), padding: const EdgeInsets.all(20),
child: Column( child: Column(
children: [ children: [
if (scheduleVM.currentSelectedBranchName.isNotEmpty) ...[
TxtField(
isBackgroundEnabled: true,
isNeedClickAll: true,
hint: '',
value: scheduleVM.currentSelectedBranchName,
onTap: () {},
),
8.height,
],
TxtField( TxtField(
hint: LocaleKeys.nameofSchedule.tr(), hint: LocaleKeys.nameofSchedule.tr(),
value: name, value: name,
@ -105,13 +147,13 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
8.height, 8.height,
ChipsPickerItem( ChipsPickerItem(
hint: LocaleKeys.select_Services.tr(), hint: LocaleKeys.select_Services.tr(),
itemsList: [...model.selectedServicesItems], itemsList: [...scheduleVM.selectedServicesItems],
onClick: () { onClick: () {
showMyBottomSheet( showMyBottomSheet(
context, context,
child: SelectServicesSheet( child: SelectServicesSheet(
onSelectServices: () { onSelectServices: () {
model.filterSelectedServices(); scheduleVM.filterSelectedServices();
FocusManager.instance.primaryFocus?.unfocus(); FocusManager.instance.primaryFocus?.unfocus();
}, },
), ),
@ -133,7 +175,7 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
firstDate: DateTime.now(), firstDate: DateTime.now(),
); );
FocusManager.instance.primaryFocus?.unfocus(); FocusManager.instance.primaryFocus?.unfocus();
model.refresh(); scheduleVM.refresh();
}, },
), ),
8.height, 8.height,
@ -151,19 +193,19 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
firstDate: DateTime.now(), firstDate: DateTime.now(),
); );
FocusManager.instance.primaryFocus?.unfocus(); FocusManager.instance.primaryFocus?.unfocus();
model.refresh(); scheduleVM.refresh();
}, },
), ),
8.height, 8.height,
ChipsPickerItem( ChipsPickerItem(
hint: LocaleKeys.offDays.tr(), hint: LocaleKeys.offDays.tr(),
itemsList: [...model.selectedDaysItems], itemsList: [...scheduleVM.selectedDaysItems],
onClick: () { onClick: () {
showMyBottomSheet( showMyBottomSheet(
context, context,
child: SelectDaysSheet( child: SelectDaysSheet(
onSelected: (List<PickerItem> picked) { onSelected: (List<PickerItem> picked) {
model.filterDays(picked); scheduleVM.filterDays(picked);
FocusManager.instance.primaryFocus?.unfocus(); FocusManager.instance.primaryFocus?.unfocus();
}, },
), ),
@ -185,7 +227,7 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
onTap: () async { onTap: () async {
startTime = await Utils.pickTime(context); startTime = await Utils.pickTime(context);
FocusManager.instance.primaryFocus?.unfocus(); FocusManager.instance.primaryFocus?.unfocus();
model.refresh(); scheduleVM.refresh();
}, },
), ),
), ),
@ -207,27 +249,25 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
initialTime: _startTime, initialTime: _startTime,
); );
FocusManager.instance.primaryFocus?.unfocus(); FocusManager.instance.primaryFocus?.unfocus();
model.refresh(); scheduleVM.refresh();
}, },
), ),
), ),
], ],
), ),
8.height, 8.height,
TxtField( Builder(
hint: LocaleKeys.slotsTime.tr(), builder: (context) {
postfixWidget: Row( return DropdownField(
mainAxisSize: MainAxisSize.min, (DropValue value) {
crossAxisAlignment: CrossAxisAlignment.center, slotsTime = value.value;
mainAxisAlignment: MainAxisAlignment.center, slotTimeId = value.id;
children: [ },
"Min".toText(color: MyColors.lightTextColor), list: minutesDrop,
], dropdownValue: slotsTime.isNotEmpty ? DropValue(slotTimeId, slotsTime, "") : null,
), hint: LocaleKeys.slotsTime.tr(),
keyboardType: TextInputType.number, errorValue: '',
value: slotsTime, );
onChanged: (v) {
slotsTime = v;
}, },
), ),
8.height, 8.height,
@ -239,6 +279,20 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
appointmentPerSlot = v; appointmentPerSlot = v;
}, },
), ),
8.height,
Builder(
builder: (context) {
return DropdownField(
(DropValue value) {
selectedScheduleLocationDrop = value;
},
list: scheduleLocationIdDrop,
dropdownValue: selectedScheduleLocationDrop.id != -1 ? selectedScheduleLocationDrop : null,
hint: LocaleKeys.selectServiceLocation.tr(),
errorValue: '',
);
},
),
], ],
), ),
), ),
@ -248,11 +302,11 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
maxWidth: double.infinity, maxWidth: double.infinity,
margin: const EdgeInsets.all(20), margin: const EdgeInsets.all(20),
onPressed: () { onPressed: () {
if (validation(model)) { if (validation(scheduleVM)) {
if (scheduleData.id != null) { if (scheduleData.id != null) {
updateSchedule(context, model); updateSchedule(context, scheduleVM);
} else { } else {
createSchedule(context, model); createSchedule(context, scheduleVM);
} }
} }
}, },
@ -298,9 +352,9 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
return valid; return valid;
} }
createSchedule(BuildContext context, ScheduleVM model) async { createSchedule(BuildContext context, ScheduleVM scheduleVM) async {
List<int> days = []; List<int> days = [];
for (var element in model.selectedDaysItems) { for (var element in scheduleVM.selectedDaysItems) {
days.add(element.id); days.add(element.id);
} }
@ -312,19 +366,19 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
"toDate": endDate, "toDate": endDate,
"startTime": startTime, "startTime": startTime,
"endTime": endTime, "endTime": endTime,
"slotDurationMinute": slotsTime, "slotDurationMinute": slotsTime.replaceFirst(' Minutes', ''),
"perSlotAppointment": appointmentPerSlot, "perSlotAppointment": appointmentPerSlot,
"deliveryServiceType": 1, "deliveryServiceType": 1,
"appointmentType": 1, "appointmentType": selectedScheduleLocationDrop.id,
"weeklyOffDays": days "weeklyOffDays": days
}; };
Utils.showLoading(context); Utils.showLoading(context);
GenericRespModel scheduleResponse = await model.createSchedule(map); GenericRespModel scheduleResponse = await scheduleVM.createSchedule(map);
if (scheduleResponse.messageStatus == 1) { if (scheduleResponse.messageStatus == 1) {
List<int> services = []; List<int> services = [];
for (var element in model.selectedServicesItems) { for (var element in scheduleVM.selectedServicesItems) {
services.add(element.id); services.add(element.id);
} }
var map1 = { var map1 = {
@ -333,7 +387,7 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
"serviceGroupDescription": "string", "serviceGroupDescription": "string",
}; };
GenericRespModel servicesResponse = await model.addServicesInSchedule(map1); GenericRespModel servicesResponse = await scheduleVM.addServicesInSchedule(map1);
Utils.hideLoading(context); Utils.hideLoading(context);
if (servicesResponse.messageStatus == 1) { if (servicesResponse.messageStatus == 1) {
Utils.showToast("Successfully schedule created"); Utils.showToast("Successfully schedule created");
@ -363,11 +417,11 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
"toDate": endDate, "toDate": endDate,
"startTime": startTime, "startTime": startTime,
"endTime": endTime, "endTime": endTime,
"slotDurationMinute": slotsTime, "slotDurationMinute": slotsTime.replaceFirst(' Minutes', ''),
"perSlotAppointment": appointmentPerSlot, "perSlotAppointment": appointmentPerSlot,
"deliveryServiceType": 1, "deliveryServiceType": 1,
"weeklyOffDays": days, "weeklyOffDays": days,
"appointmentType": scheduleData.appointmentType "appointmentType": selectedScheduleLocationDrop.id,
}; };
Utils.showLoading(context); Utils.showLoading(context);

@ -130,6 +130,7 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
showItem("${LocaleKeys.shiftEndTime.tr()}:", scheduleVM.schedule!.data![index].endTime ?? ""), showItem("${LocaleKeys.shiftEndTime.tr()}:", scheduleVM.schedule!.data![index].endTime ?? ""),
showItem("${LocaleKeys.slotsTime.tr()}:", "${scheduleVM.schedule!.data![index].slotDurationMinute} Mins"), showItem("${LocaleKeys.slotsTime.tr()}:", "${scheduleVM.schedule!.data![index].slotDurationMinute} Mins"),
showItem("${LocaleKeys.appointmentPerSlot.tr()}:", scheduleVM.schedule!.data![index].perSlotAppointment.toString()), showItem("${LocaleKeys.appointmentPerSlot.tr()}:", scheduleVM.schedule!.data![index].perSlotAppointment.toString()),
showItem(LocaleKeys.serviceLocation.tr(), scheduleVM.schedule!.data![index].appointmentType ==1 ? "Company Location" : "Home Location"),
showItem("${LocaleKeys.offDays.tr()}:", offDays(scheduleVM.schedule!.data![index])), showItem("${LocaleKeys.offDays.tr()}:", offDays(scheduleVM.schedule!.data![index])),
12.height, 12.height,
"${LocaleKeys.services.tr()}:".toText(fontSize: 12, color: MyColors.lightTextColor), "${LocaleKeys.services.tr()}:".toText(fontSize: 12, color: MyColors.lightTextColor),

@ -25,7 +25,12 @@ class ChipsPickerItem extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Row( return Row(
children: [ children: [
if (itemsList.isEmpty) Expanded(child: hint.toText(fontSize: 15, fontWeight: MyFonts.Medium, color: borderColor)), if (itemsList.isEmpty)
Expanded(
child: Text(
hint,
style: const TextStyle(color: borderColor, fontSize: 15, fontWeight: MyFonts.Medium),
)),
if (itemsList.isNotEmpty) if (itemsList.isNotEmpty)
Expanded( Expanded(
child: ListView( child: ListView(

@ -104,7 +104,7 @@ class _CreateServicesPage3State extends State<CreateServicesPage3> {
) )
: const CircularProgressIndicator(), : const CircularProgressIndicator(),
12.height, 12.height,
model.servicesDropList.isNotEmpty categoryId != -1 && model.servicesDropList.isNotEmpty
? DropdownField( ? DropdownField(
(DropValue value) { (DropValue value) {
service = value; service = value;

@ -106,7 +106,7 @@ class _MatchedServicesPageState extends State<MatchedServicesPage> {
value: model.matchedServices![index].isExpandedOrSelected, value: model.matchedServices![index].isExpandedOrSelected,
onChanged: (v) { onChanged: (v) {
if (model.matchedServices![index].serviceItems!.isEmpty) { if (model.matchedServices![index].serviceItems!.isEmpty) {
Utils.showToast(LocaleKeys.noItemstoShow.tr()); Utils.showToast(LocaleKeys.noItemsToShow.tr());
} else { } else {
model.matchedServices![index].isExpandedOrSelected = v ?? false; model.matchedServices![index].isExpandedOrSelected = v ?? false;
model.updateServiceItem(index, model.matchedServices![index].isExpandedOrSelected); model.updateServiceItem(index, model.matchedServices![index].isExpandedOrSelected);

@ -42,7 +42,7 @@ class ItemsListPage extends StatelessWidget {
return model.state == ViewState.busy return model.state == ViewState.busy
? const Center(child: CircularProgressIndicator()) ? const Center(child: CircularProgressIndicator())
: model.serviceItems!.data!.isEmpty : model.serviceItems!.data!.isEmpty
? EmptyWidget(text: LocaleKeys.noItemstoShow.tr(), isWrappedColumn: false) ? EmptyWidget(text: LocaleKeys.noItemsToShow.tr(), isWrappedColumn: false)
: ListView.separated( : ListView.separated(
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return SizedBox( return SizedBox(

@ -108,7 +108,7 @@ class _ServicesListPageState extends State<ServicesListPage> {
Expanded( Expanded(
child: services.isEmpty child: services.isEmpty
? Center( ? Center(
child: LocaleKeys.noItemstoShow.tr().toText(fontSize: 16, color: MyColors.lightTextColor), child: LocaleKeys.noItemsToShow.tr().toText(fontSize: 16, color: MyColors.lightTextColor),
) )
: ListView.separated( : ListView.separated(
itemBuilder: (context, index) { itemBuilder: (context, index) {

@ -33,7 +33,7 @@ class HomeFragment extends StatelessWidget {
leadingWidth: 100, leadingWidth: 100,
toolbarHeight: 59, toolbarHeight: 59,
onTap: () => navigateWithName(context, AppRoutes.settingOptionsMore), onTap: () => navigateWithName(context, AppRoutes.settingOptionsMore),
actions: [ actions: const [
// IconButton( // IconButton(
// onPressed: () => context.read<AppointmentsVM>().onGeneralChatMessagesButtonPressed(context: context), // onPressed: () => context.read<AppointmentsVM>().onGeneralChatMessagesButtonPressed(context: context),
// icon: b.Badge( // icon: b.Badge(

Loading…
Cancel
Save