diff --git a/lib/main.dart b/lib/main.dart index 64dada6..e31fb03 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -154,7 +154,6 @@ class MyApp extends StatelessWidget { ), ); - return MaterialApp( navigatorKey: navigatorKey, theme: AppTheme.getTheme(isArabic: EasyLocalization.of(context)?.locale.languageCode == "ar"), diff --git a/lib/views/dashboard/fragments/appointments_fragment.dart b/lib/views/dashboard/fragments/appointments_fragment.dart index 9da8a7f..ae94cb6 100644 --- a/lib/views/dashboard/fragments/appointments_fragment.dart +++ b/lib/views/dashboard/fragments/appointments_fragment.dart @@ -1,3 +1,4 @@ +import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/view_models/appointments_view_model.dart'; @@ -44,7 +45,7 @@ class AppointmentsFragment extends StatelessWidget { }) ], ).toViewOnly(context, onTap: () { - navigateWithName(context, AppRoutes.loginWithPassword); + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); }), body: SizedBox( width: double.infinity, @@ -53,67 +54,68 @@ class AppointmentsFragment extends StatelessWidget { children: [ 16.height, FiltersList( - filterList: appointmentsVM.appointmentsFilterOptions, - onFilterTapped: (index, selectedFilterId) { - appointmentsVM.applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: selectedFilterId.toAppointmentStatusEnum()); - }), + filterList: appointmentsVM.appointmentsFilterOptions, + onFilterTapped: (index, selectedFilterId) { + appointmentsVM.applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: selectedFilterId.toAppointmentStatusEnum()); + }, + ), 16.height, - Expanded( - child: RefreshIndicator( - onRefresh: () async { - int index = appointmentsVM.appointmentsFilterOptions.indexWhere((element) => element.isSelected); - if (index != -1) { - AppointmentStatusEnum appointmentStatusEnum = appointmentsVM.appointmentsFilterOptions[index].id.toAppointmentStatusEnum(); - appointmentsVM.applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: appointmentStatusEnum); - } - }, - child: appointmentsVM.state == ViewState.busy - ? const Center(child: CircularProgressIndicator()) - : appointmentsVM.myFilteredAppointmentsForCustomers.isEmpty - ? Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - LocaleKeys.noAppointmentstoShow.tr().toText(fontSize: 16, color: MyColors.lightTextColor), - if (appointmentsVM.appointmentFiltersCounter > 0) ...[ - 8.height, - InkWell( - onTap: () async { - appointmentsVM.clearAppointmentFilters(); - await appointmentsVM.applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: AppointmentStatusEnum.allAppointments); - }, - child: LocaleKeys.clearFilters.tr().toText( - fontSize: 14, - isBold: true, - color: MyColors.darkPrimaryColor, - ), - ), + RefreshIndicator( + onRefresh: () async { + int index = appointmentsVM.appointmentsFilterOptions.indexWhere((element) => element.isSelected); + if (index != -1) { + AppointmentStatusEnum appointmentStatusEnum = appointmentsVM.appointmentsFilterOptions[index].id.toAppointmentStatusEnum(); + appointmentsVM.applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: appointmentStatusEnum); + } + }, + child: appointmentsVM.state == ViewState.busy + ? const Center(child: CircularProgressIndicator()) + : appointmentsVM.myFilteredAppointmentsForCustomers.isEmpty + ? AppState().getIsViewOnly + ? LocaleKeys.loginToViewAppointments.tr().toText(fontSize: 16, color: MyColors.lightTextColor) + : Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + LocaleKeys.noAppointmentstoShow.tr().toText(fontSize: 16, color: MyColors.lightTextColor), + if (appointmentsVM.appointmentFiltersCounter > 0) ...[ + 8.height, + InkWell( + onTap: () async { + appointmentsVM.clearAppointmentFilters(); + await appointmentsVM.applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: AppointmentStatusEnum.allAppointments); + }, + child: LocaleKeys.clearFilters.tr().toText( + fontSize: 14, + isBold: true, + color: MyColors.darkPrimaryColor, + ), + ), + ], ], - ], - ) - : ListView.separated( - separatorBuilder: (context, index) => 12.height, - shrinkWrap: true, - itemCount: appointmentsVM.myFilteredAppointmentsForCustomers.length, - itemBuilder: (BuildContext context, int index) { - return AppointmentFragmentTileWidget( - onTapped: () { - AppointmentListModel appointmentModel = appointmentsVM.myFilteredAppointmentsForCustomers[index]; - appointmentModel.appointmentServicesList!.forEach((service) { - double totalServicePrice = 0.0; - service.serviceItems!.forEach((item) { - totalServicePrice = totalServicePrice + (double.parse("${item.price ?? 0.0}")); - }); - service.currentTotalServicePrice = totalServicePrice; + ) + : ListView.separated( + separatorBuilder: (context, index) => 12.height, + shrinkWrap: true, + itemCount: appointmentsVM.myFilteredAppointmentsForCustomers.length, + itemBuilder: (BuildContext context, int index) { + return AppointmentFragmentTileWidget( + onTapped: () { + AppointmentListModel appointmentModel = appointmentsVM.myFilteredAppointmentsForCustomers[index]; + appointmentModel.appointmentServicesList!.forEach((service) { + double totalServicePrice = 0.0; + service.serviceItems!.forEach((item) { + totalServicePrice = totalServicePrice + (double.parse("${item.price ?? 0.0}")); }); - navigateWithName(context, AppRoutes.appointmentDetailView, arguments: appointmentModel); - }, - appointmentListModel: appointmentsVM.myFilteredAppointmentsForCustomers[index], - ).margin(left: 21, right: 21); - }, - ), - ), + service.currentTotalServicePrice = totalServicePrice; + }); + navigateWithName(context, AppRoutes.appointmentDetailView, arguments: appointmentModel); + }, + appointmentListModel: appointmentsVM.myFilteredAppointmentsForCustomers[index], + ).margin(left: 21, right: 21); + }, + ), ).toViewOnly(context, onTap: () { - navigateWithName(context, AppRoutes.loginWithPassword); + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); }), ], ), @@ -128,7 +130,7 @@ class AppointmentsFragment extends StatelessWidget { color: MyColors.white, ), ).toViewOnly(context, onTap: () { - navigateWithName(context, AppRoutes.loginWithPassword); + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); }), ); }, diff --git a/lib/views/dashboard/fragments/branches_fragment.dart b/lib/views/dashboard/fragments/branches_fragment.dart index 48eb53c..6d30827 100644 --- a/lib/views/dashboard/fragments/branches_fragment.dart +++ b/lib/views/dashboard/fragments/branches_fragment.dart @@ -43,8 +43,8 @@ class BranchesFragment extends StatelessWidget { }), ], ).toViewOnly(context, onTap: () { - navigateWithName(context, AppRoutes.loginWithPassword); - }), + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); + }), body: SizedBox( width: double.infinity, height: double.infinity, @@ -89,7 +89,7 @@ class BranchesFragment extends StatelessWidget { providerRatings: branchDetailModel.branchRateAvg ?? 0.0, services: branchDetailModel.branchServices, ).toViewOnly(context, onTap: () { - navigateWithName(context, AppRoutes.loginWithPassword); + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); }); }, separatorBuilder: (context, index) => 12.height, diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index 1db0241..a88cfef 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -52,7 +52,7 @@ class HomeFragment extends StatelessWidget { // 10.width, ], ).toViewOnly(context, onTap: () { - navigateWithName(context, AppRoutes.loginWithPassword); + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); }), body: SizedBox( width: double.infinity, @@ -72,14 +72,17 @@ class HomeFragment extends StatelessWidget { context.read().applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: AppointmentStatusEnum.allAppointments); }, ).horPaddingMain().toViewOnly(context, onTap: () { - navigateWithName(context, AppRoutes.loginWithPassword); + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); }), CommonAppointmentSliderWidget() .toWhiteContainer( width: double.infinity, backgroundColor: Colors.transparent, ) - .margin(left: 21, right: 21), + .margin(left: 21, right: 21) + .toViewOnly(context, onTap: () { + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); + }), // SERVICES SECTION 14.height, @@ -96,7 +99,7 @@ class HomeFragment extends StatelessWidget { subTitle: '', onSubtitleTapped: () {}, ).horPaddingMain().toViewOnly(context, onTap: () { - navigateWithName(context, AppRoutes.loginWithPassword); + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); }), MyServicesCategoriesWidget(homeCategories: appointmentVM.branchesCategoriesFilterOptions).horPaddingMain() ], @@ -168,7 +171,7 @@ class HomeFragment extends StatelessWidget { context.read().onNavbarTapped(3); context.read().updateIsExploreAds(false); }).horPaddingMain().toViewOnly(context, onTap: () { - navigateWithName(context, AppRoutes.loginWithPassword); + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); }), AdsListWidget( shouldShowAdStatus: true, @@ -177,7 +180,7 @@ class HomeFragment extends StatelessWidget { scrollPhysics: NeverScrollableScrollPhysics(), hasMoreData: adVM.isExploreAdsTapped ? adVM.hasMoreDataForExploreAds : adVM.hasMoreDataForMyAds, ).toViewOnly(context, onTap: () { - navigateWithName(context, AppRoutes.loginWithPassword); + navigateWithName(context, AppRoutes.loginWithPassword, arguments: false); }), ], )