16 April, 2025

master
Faiz Hashmi 7 months ago
parent 29567119e6
commit 32e168b14a

@ -115,10 +115,15 @@ class ScheduleVM extends BaseVM {
return response; return response;
} }
getSchedules(String branchId) async { Future<void> getSchedules(String branchId) async {
try {
setState(ViewState.busy);
schedule = null; schedule = null;
schedule = await scheduleRepo.getSchedules(branchId); schedule = await scheduleRepo.getSchedules(branchId);
setState(ViewState.idle); setState(ViewState.idle);
} catch (e) {
setState(ViewState.idle);
}
} }
Future<GenericRespModel> updateSchedule(Map map) async { Future<GenericRespModel> updateSchedule(Map map) async {

@ -217,6 +217,7 @@ class _AddNewServiceAppointmentPageState extends State<AddNewServiceAppointmentP
12.height, 12.height,
(service != null && pickedItems != null && pickedItems!.isNotEmpty) (service != null && pickedItems != null && pickedItems!.isNotEmpty)
? ChipsPickerItem( ? ChipsPickerItem(
isNeedLabelOnTop: true,
hint: LocaleKeys.selectItems.tr(), hint: LocaleKeys.selectItems.tr(),
itemsList: [...pickedItems ?? []], itemsList: [...pickedItems ?? []],
onClick: () { onClick: () {

@ -155,6 +155,7 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
), ),
8.height, 8.height,
ChipsPickerItem( ChipsPickerItem(
isNeedLabelOnTop: true,
hint: LocaleKeys.select_Services.tr(), hint: LocaleKeys.select_Services.tr(),
itemsList: [...scheduleVM.selectedServicesItems], itemsList: [...scheduleVM.selectedServicesItems],
onClick: () { onClick: () {
@ -248,6 +249,7 @@ class _AddSchedulesPageState extends State<AddSchedulesPage> {
), ),
8.height, 8.height,
ChipsPickerItem( ChipsPickerItem(
isNeedLabelOnTop: true,
hint: LocaleKeys.offDays.tr(), hint: LocaleKeys.offDays.tr(),
itemsList: [...scheduleVM.selectedDaysItems], itemsList: [...scheduleVM.selectedDaysItems],
onClick: () { onClick: () {

@ -10,6 +10,7 @@ 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';
import 'package:mc_common_app/utils/date_helper.dart'; import 'package:mc_common_app/utils/date_helper.dart';
import 'package:mc_common_app/utils/dialogs_and_bottomsheets.dart'; import 'package:mc_common_app/utils/dialogs_and_bottomsheets.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/navigator.dart'; 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';
@ -52,7 +53,7 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
GenericRespModel res = await serviceVM.setScheduleInactive(serviceVM.schedule!.data![index].id!, serviceVM.schedule!.data![index].serviceProviderBranchId!); GenericRespModel res = await serviceVM.setScheduleInactive(serviceVM.schedule!.data![index].id!, serviceVM.schedule!.data![index].serviceProviderBranchId!);
Utils.hideLoading(context); Utils.hideLoading(context);
if (res.messageStatus == 1) { if (res.messageStatus == 1) {
Utils.showToast(LocaleKeys.branch_deleted.tr()); Utils.showToast(LocaleKeys.scheduleDeletedSuccessfully.tr());
} else { } else {
Utils.showToast(res.message ?? ""); Utils.showToast(res.message ?? "");
} }
@ -94,7 +95,11 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
? EmptyWidget( ? EmptyWidget(
text: LocaleKeys.noSchedulesFound.tr(), text: LocaleKeys.noSchedulesFound.tr(),
).paddingAll(21) ).paddingAll(21)
: ListView.separated( : RefreshIndicator(
onRefresh: () async {
await scheduleVM.getSchedules(widget.branchId ?? "");
},
child: ListView.separated(
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -150,6 +155,7 @@ class _SchedulesListPageState extends State<SchedulesListPage> {
}, },
padding: const EdgeInsets.all(20), padding: const EdgeInsets.all(20),
itemCount: scheduleVM.schedule!.data!.length, itemCount: scheduleVM.schedule!.data!.length,
),
); );
}, },
), ),

@ -15,22 +15,40 @@ class PickerItem {
} }
class ChipsPickerItem extends StatelessWidget { class ChipsPickerItem extends StatelessWidget {
final bool isNeedLabelOnTop;
final String hint; final String hint;
final List<PickerItem> itemsList; final List<PickerItem> itemsList;
final Function onClick; final Function onClick;
const ChipsPickerItem({super.key, required this.hint, required this.itemsList, required this.onClick}); const ChipsPickerItem({super.key, required this.isNeedLabelOnTop, required this.hint, required this.itemsList, required this.onClick});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Row( return Column(
children: [ children: [
if (itemsList.isEmpty) if (isNeedLabelOnTop && hint.isNotEmpty) ...[
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
(hint).toText(
color: borderColor,
fontSize: 13,
fontWeight: MyFonts.Medium,
),
],
),
4.height,
],
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
if (itemsList.isEmpty && !isNeedLabelOnTop)
Expanded( Expanded(
child: Text( child: Text(
hint, hint,
style: const TextStyle(color: borderColor, fontSize: 15, fontWeight: MyFonts.Medium), style: const TextStyle(color: borderColor, fontSize: 15, fontWeight: MyFonts.Medium),
)), ),
),
if (itemsList.isNotEmpty) if (itemsList.isNotEmpty)
Expanded( Expanded(
child: ListView( child: ListView(
@ -62,7 +80,9 @@ class ChipsPickerItem extends StatelessWidget {
) )
.onPress(() { .onPress(() {
onClick(); onClick();
}); }),
],
);
} }
Widget showItem(String title, {bool isNeedToShowIcon = true}) { Widget showItem(String title, {bool isNeedToShowIcon = true}) {

@ -86,14 +86,6 @@ class _CreateItemPageState extends State<CreateItemPage> {
}, },
), ),
12.height, 12.height,
TxtField(
hint: LocaleKeys.itemDescription.tr(),
value: description,
onChanged: (v) {
description = v;
},
),
12.height,
TxtField( TxtField(
hint: LocaleKeys.itemPrice.tr(), hint: LocaleKeys.itemPrice.tr(),
value: price, value: price,
@ -121,6 +113,15 @@ class _CreateItemPageState extends State<CreateItemPage> {
}, },
), ),
12.height, 12.height,
TxtField(
hint: LocaleKeys.itemDescription.tr(),
value: description,
maxLines: 3,
onChanged: (v) {
description = v;
},
),
12.height,
if (pickedImage.isNotEmpty) ...[ if (pickedImage.isNotEmpty) ...[
PickedFilesContainer( PickedFilesContainer(
pickedFiles: pickedImage, pickedFiles: pickedImage,

@ -105,6 +105,7 @@ class HomeFragment extends StatelessWidget {
}, },
).horPaddingMain(), ).horPaddingMain(),
AdsListWidget( AdsListWidget(
isDraftAds: false,
shouldShowAdStatus: true, shouldShowAdStatus: true,
isAdsFragment: false, isAdsFragment: false,
adsList: adVM.myActiveAdsForHome, adsList: adVM.myActiveAdsForHome,
@ -128,6 +129,7 @@ class HomeFragment extends StatelessWidget {
}, },
).horPaddingMain(), ).horPaddingMain(),
AdsListWidget( AdsListWidget(
isDraftAds: false,
shouldShowAdStatus: false, shouldShowAdStatus: false,
adsList: adVM.exploreAds.length >= 3 ? adVM.exploreAds.take(3).toList() : adVM.exploreAds, adsList: adVM.exploreAds.length >= 3 ? adVM.exploreAds.take(3).toList() : adVM.exploreAds,
isAdsFragment: false, isAdsFragment: false,

Loading…
Cancel
Save