diff --git a/lib/config/customer_routes.dart b/lib/config/customer_routes.dart index 351b230..0267ec3 100644 --- a/lib/config/customer_routes.dart +++ b/lib/config/customer_routes.dart @@ -1,6 +1,6 @@ -import 'package:car_customer_app/views/appointment_detail_view.dart'; -import 'package:car_customer_app/views/book_provider_app_view.dart'; +import 'package:car_customer_app/views/appointments/appointment_detail_view.dart'; import 'package:car_customer_app/views/dashboard/dashboard_page.dart'; +import 'package:car_customer_app/views/providers/book_provider_app_view.dart'; import 'package:flutter/cupertino.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart'; diff --git a/lib/main.dart b/lib/main.dart index e36f331..93c15a1 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,26 +1,26 @@ import 'package:car_customer_app/config/customer_dependencies.dart'; import 'package:car_customer_app/config/customer_routes.dart'; +import 'package:car_customer_app/view_models/appointments_view_model.dart'; import 'package:car_customer_app/view_models/dashboard_view_model.dart'; +import 'package:car_customer_app/view_models/providers_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; - -import 'package:mc_common_app/services/services.dart'; -import 'package:mc_common_app/theme/app_theme.dart'; import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/models/post_params_model.dart'; +import 'package:mc_common_app/repositories/common_repo.dart'; import 'package:mc_common_app/repositories/user_repo.dart'; +import 'package:mc_common_app/services/services.dart'; +import 'package:mc_common_app/theme/app_theme.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; import 'package:mc_common_app/view_models/user_view_model.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; -import 'package:sizer/sizer.dart'; import 'package:provider/provider.dart'; import 'package:provider/single_child_widget.dart'; - -import 'package:mc_common_app/repositories/common_repo.dart'; +import 'package:sizer/sizer.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -31,9 +31,7 @@ Future main() async { runApp( MultiProvider( providers: [ - ChangeNotifierProvider( - create: (_) => BaseVM(), - ), + ChangeNotifierProvider(create: (_) => BaseVM()), ChangeNotifierProvider( create: (_) => DashboardVM( userRepo: injector.get(), @@ -44,7 +42,22 @@ Future main() async { create: (_) => UserVM(userRepo: injector.get()), ), ChangeNotifierProvider( - create: (_) => AdVM(commonServices: injector.get(), commonRepo: injector.get()), + create: (_) => AdVM( + commonServices: injector.get(), + commonRepo: injector.get(), + ), + ), + ChangeNotifierProvider( + create: (_) => ProvidersVM( + commonServices: injector.get(), + commonRepo: injector.get(), + ), + ), + ChangeNotifierProvider( + create: (_) => AppointmentsVM( + commonServices: injector.get(), + commonRepo: injector.get(), + ), ), ], child: const MyApp(), diff --git a/lib/view_models/appointments_view_model.dart b/lib/view_models/appointments_view_model.dart new file mode 100644 index 0000000..35f5ccd --- /dev/null +++ b/lib/view_models/appointments_view_model.dart @@ -0,0 +1,33 @@ +import 'package:flutter/cupertino.dart'; +import 'package:mc_common_app/models/widgets_models.dart'; +import 'package:mc_common_app/repositories/common_repo.dart'; +import 'package:mc_common_app/services/services.dart'; + +class AppointmentsVM extends ChangeNotifier { + final CommonRepo commonRepo; + final CommonServices commonServices; + + AppointmentsVM({required this.commonServices, required this.commonRepo}); + + List appointmentsFilterOptions = []; + + populateAppointmentsFilterList() { + appointmentsFilterOptions.clear(); + appointmentsFilterOptions = [ + FilterListModel(title: "All Appointments", isSelected: true), + FilterListModel(title: "Booked", isSelected: false), + FilterListModel(title: "Confirmed", isSelected: false), + FilterListModel(title: "Arrived", isSelected: false), + ]; + notifyListeners(); + } + + applyFilterOnAppointmentsVM({required int index}) { + if (appointmentsFilterOptions.isEmpty) return; + for (var value in appointmentsFilterOptions) { + value.isSelected = false; + } + appointmentsFilterOptions[index].isSelected = true; + notifyListeners(); + } +} diff --git a/lib/view_models/providers_view_model.dart b/lib/view_models/providers_view_model.dart new file mode 100644 index 0000000..97af746 --- /dev/null +++ b/lib/view_models/providers_view_model.dart @@ -0,0 +1,35 @@ +import 'package:flutter/cupertino.dart'; +import 'package:mc_common_app/models/widgets_models.dart'; +import 'package:mc_common_app/repositories/common_repo.dart'; +import 'package:mc_common_app/services/services.dart'; + +class ProvidersVM extends ChangeNotifier { + final CommonRepo commonRepo; + final CommonServices commonServices; + + ProvidersVM({required this.commonServices, required this.commonRepo}); + + List providersFilterOptions = []; + + populateProvidersFilterList() { + providersFilterOptions.clear(); + providersFilterOptions = [ + FilterListModel(title: "All Providers", isSelected: true), + FilterListModel(title: "Maintenance", isSelected: false), + FilterListModel(title: "Oil Service", isSelected: false), + FilterListModel(title: "Accessories", isSelected: false), + FilterListModel(title: "Tire Service", isSelected: false), + FilterListModel(title: "Dent and Paint", isSelected: false), + ]; + notifyListeners(); + } + + applyFilterOnProviders({required int index}) { + if (providersFilterOptions.isEmpty) return; + for (var value in providersFilterOptions) { + value.isSelected = false; + } + providersFilterOptions[index].isSelected = true; + notifyListeners(); + } +} diff --git a/lib/views/appointment_detail_view.dart b/lib/views/appointments/appointment_detail_view.dart similarity index 100% rename from lib/views/appointment_detail_view.dart rename to lib/views/appointments/appointment_detail_view.dart index 47f7b53..3e017f6 100644 --- a/lib/views/appointment_detail_view.dart +++ b/lib/views/appointments/appointment_detail_view.dart @@ -5,8 +5,8 @@ import 'package:mc_common_app/extensions/string_extensions.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/common_widgets/app_bar.dart'; -import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/common_widgets/card_button_with_icon.dart'; +import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; class AppointmentDetailView extends StatelessWidget { AppointmentDetailView({Key? key}) : super(key: key); diff --git a/lib/views/dashboard/dashboard_page.dart b/lib/views/dashboard/dashboard_page.dart index 392ec3d..bfc4f5b 100644 --- a/lib/views/dashboard/dashboard_page.dart +++ b/lib/views/dashboard/dashboard_page.dart @@ -1,4 +1,7 @@ +import 'dart:async'; +import 'package:car_customer_app/view_models/appointments_view_model.dart'; import 'package:car_customer_app/view_models/dashboard_view_model.dart'; +import 'package:car_customer_app/view_models/providers_view_model.dart'; import 'package:car_customer_app/views/dashboard/fragments/ads_fragment.dart'; import 'package:car_customer_app/views/dashboard/fragments/appointments_fragment.dart'; import 'package:car_customer_app/views/dashboard/fragments/home_fragment.dart'; @@ -8,6 +11,7 @@ import 'package:car_customer_app/views/dashboard/widgets/bottom_nav_bar.dart'; import 'package:car_customer_app/views/dashboard/widgets/drawer_widget.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; @@ -27,6 +31,11 @@ class _DashboardPageState extends State { super.initState(); // dashboardVM = Provider.of(context, listen: false); fetchUsername(); + scheduleMicrotask(() { + context.read().populateAppointmentsFilterList(); + context.read().populateProvidersFilterList(); + context.read().populateAdsFilterList(); + }); } fetchUsername() async {} diff --git a/lib/views/dashboard/fragments/ads_fragment.dart b/lib/views/dashboard/fragments/ads_fragment.dart index b259274..df49657 100644 --- a/lib/views/dashboard/fragments/ads_fragment.dart +++ b/lib/views/dashboard/fragments/ads_fragment.dart @@ -1,13 +1,14 @@ +import 'package:mc_common_app/view_models/ad_view_model.dart'; +import 'package:mc_common_app/views/advertisement/ads_list.dart'; import 'package:flutter/material.dart'; +import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; -import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; +import 'package:mc_common_app/widgets/common_widgets/categories_list.dart'; import 'package:provider/provider.dart'; -import 'package:mc_common_app/views/advertisement/ads_list.dart'; - class AdsFragment extends StatelessWidget { AdsFragment({Key? key}) : super(key: key); @@ -30,43 +31,52 @@ class AdsFragment extends StatelessWidget { 16.height, Consumer( builder: (BuildContext context, AdVM adVM, Widget? child) { - return Row( + return Column( children: [ - Expanded( - child: ShowFillButton( - isFilled: adVM.isExploreAdsTapped, - maxHeight: 55, - title: "Explore Ads", - txtColor: adVM.isExploreAdsTapped ? MyColors.white : MyColors.darkTextColor, - onPressed: () { - adVM.updateIsExploreAds(true); - }, - ), - ), - 12.width, - Expanded( - child: ShowFillButton( - isFilled: !adVM.isExploreAdsTapped, - txtColor: !adVM.isExploreAdsTapped ? MyColors.white : MyColors.darkTextColor, - maxHeight: 55, - title: "My Ads", - onPressed: () { - adVM.updateIsExploreAds(false); - }, - ), + Row( + children: [ + Expanded( + child: ShowFillButton( + isFilled: adVM.isExploreAdsTapped, + maxHeight: 55, + title: "Explore Ads", + txtColor: adVM.isExploreAdsTapped ? MyColors.white : MyColors.darkTextColor, + onPressed: () { + print("ads: ${AppState().getUser.data!.accessToken}"); + adVM.updateIsExploreAds(true); + }, + ), + ), + 12.width, + Expanded( + child: ShowFillButton( + isFilled: !adVM.isExploreAdsTapped, + txtColor: !adVM.isExploreAdsTapped ? MyColors.white : MyColors.darkTextColor, + maxHeight: 55, + title: "My Ads", + onPressed: () { + adVM.updateIsExploreAds(false); + }, + ), + ), + ], ), + if (adVM.isExploreAdsTapped) ...[ + 16.height, + FiltersList(filterList: adVM.adsFilterOptions, onFilterTapped: (index) => adVM.applyFilterOnAds(index: index), needLeftPadding: false), + ], ], ); }, ), - 24.height, + 16.height, Expanded( child: RefreshIndicator( onRefresh: () => onRefreshAds(context), child: Consumer( builder: (BuildContext context, AdVM adVM, Widget? child) { return BuildAdsList( - adsList: adVM.isExploreAdsTapped ? adVM.allAds : adVM.myAds, + adsList: adVM.isExploreAdsTapped && adVM.adsFilteredList.isNotEmpty ? adVM.adsFilteredList : adVM.myAds, ); }, ), diff --git a/lib/views/dashboard/fragments/appointments_fragment.dart b/lib/views/dashboard/fragments/appointments_fragment.dart index 9406018..3bb1a17 100644 --- a/lib/views/dashboard/fragments/appointments_fragment.dart +++ b/lib/views/dashboard/fragments/appointments_fragment.dart @@ -1,10 +1,12 @@ +import 'package:car_customer_app/view_models/appointments_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; -import 'package:mc_common_app/widgets/common_widgets/customer_appointment_slider_widget.dart'; import 'package:mc_common_app/widgets/common_widgets/categories_list.dart'; +import 'package:mc_common_app/widgets/common_widgets/customer_appointment_slider_widget.dart'; +import 'package:provider/provider.dart'; class AppointmentsFragment extends StatelessWidget { const AppointmentsFragment({Key? key}) : super(key: key); @@ -15,26 +17,33 @@ class AppointmentsFragment extends StatelessWidget { color: MyColors.backgroundColor, width: double.infinity, height: double.infinity, - child: Column( - children: [ - 16.height, - CategoriesList(name: "Upcoming", onTapped: () {}), - 16.height, - Expanded( - child: Container( - child: ListView.builder( - shrinkWrap: true, - itemCount: 30, - itemBuilder: (BuildContext context, int index) { - return BuildAppointmentContainerForCustomer( - onTapped: () { - navigateWithName(context, AppRoutes.appointmentDetailView); - }, - ); - }), - ), - ), - ], + child: Consumer( + builder: (BuildContext context, AppointmentsVM appointmentsVM, Widget? child) { + return Column( + children: [ + 16.height, + FiltersList( + filterList: appointmentsVM.appointmentsFilterOptions, + onFilterTapped: (index) => appointmentsVM.applyFilterOnAppointmentsVM(index: index), + ), + 16.height, + Expanded( + child: Container( + child: ListView.builder( + shrinkWrap: true, + itemCount: 30, + itemBuilder: (BuildContext context, int index) { + return BuildAppointmentContainerForCustomer( + onTapped: () { + navigateWithName(context, AppRoutes.appointmentDetailView); + }, + ); + }), + ), + ), + ], + ); + }, ), ); } diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index a50cbb5..cac2678 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -1,12 +1,15 @@ import 'dart:async'; -import 'package:mc_common_app/views/advertisement/ads_list.dart'; + +import 'package:mc_common_app/view_models/ad_view_model.dart'; +import 'package:car_customer_app/view_models/dashboard_view_model.dart'; import 'package:flutter/material.dart'; + import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/view_models/ad_view_model.dart'; -import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; -import 'package:mc_common_app/widgets/common_widgets/view_all_widget.dart'; -import 'package:mc_common_app/widgets/common_widgets/my_service_provider.dart'; +import 'package:mc_common_app/views/advertisement/ads_list.dart'; import 'package:mc_common_app/widgets/common_widgets/customer_appointment_slider_widget.dart'; +import 'package:mc_common_app/widgets/common_widgets/my_service_provider.dart'; +import 'package:mc_common_app/widgets/common_widgets/view_all_widget.dart'; +import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; class HomeFragment extends StatefulWidget { @@ -47,27 +50,44 @@ class _HomeFragmentState extends State { mainAxisSize: MainAxisSize.max, children: [ 16.height, - ViewAllWidget(title: "Upcoming Appointment".toUpperCase(), subTitle: "View All").horPaddingMain(), + ViewAllWidget( + title: "Upcoming Appointment".toUpperCase(), + subTitle: "View All", + onSubtitleTapped: () {}, + ).horPaddingMain(), const CustomerAppointmentSliderWidget(), 7.height, - ViewAllWidget(title: "My Recent Service Providers".toUpperCase(), subTitle: "View All").horPaddingMain(), + ViewAllWidget(title: "My Recent Service Providers".toUpperCase(), subTitle: "View All", onSubtitleTapped: () {}).horPaddingMain(), const ServiceProviderWidget().horPaddingMain(), 15.height, - ViewAllWidget(title: "My Active Ads".toUpperCase(), subTitle: "View All").horPaddingMain(), + ViewAllWidget( + title: "My Active Ads".toUpperCase(), + subTitle: "View All", + onSubtitleTapped: () { + context.read().onNavbarTapped(3); + context.read().updateIsExploreAds(false); + }).horPaddingMain(), Consumer( builder: (BuildContext context, AdVM adVM, Widget? child) { return BuildAdsList( - adsList: adVM.myAds, + adsList: adVM.myAds.length >= 3 ? adVM.myAds.take(3).toList() : adVM.myAds, scrollPhysics: NeverScrollableScrollPhysics(), ).horPaddingMain(); }, ), 20.height, - ViewAllWidget(title: "My Recommended Ads".toUpperCase(), subTitle: "View All").horPaddingMain(), + ViewAllWidget( + title: "My Recommended Ads".toUpperCase(), + subTitle: "View All", + onSubtitleTapped: () { + context.read().onNavbarTapped(3); + context.read().updateIsExploreAds(true); + context.read().applyFilterOnAds(index: 0); + }).horPaddingMain(), Consumer( builder: (BuildContext context, AdVM adVM, Widget? child) { return BuildAdsList( - adsList: adVM.allAds, + adsList: adVM.allAds.length >= 3 ? adVM.allAds.take(3).toList() : adVM.allAds, scrollPhysics: NeverScrollableScrollPhysics(), ).horPaddingMain(); }, diff --git a/lib/views/dashboard/fragments/providers_fragment.dart b/lib/views/dashboard/fragments/providers_fragment.dart index 5144772..3872e12 100644 --- a/lib/views/dashboard/fragments/providers_fragment.dart +++ b/lib/views/dashboard/fragments/providers_fragment.dart @@ -1,11 +1,13 @@ +import 'package:car_customer_app/view_models/providers_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; -import 'package:mc_common_app/widgets/common_widgets/provider_details_card.dart'; import 'package:mc_common_app/widgets/common_widgets/categories_list.dart'; +import 'package:mc_common_app/widgets/common_widgets/provider_details_card.dart'; +import 'package:provider/provider.dart'; class ProvidersFragment extends StatelessWidget { const ProvidersFragment({Key? key}) : super(key: key); @@ -16,30 +18,37 @@ class ProvidersFragment extends StatelessWidget { color: MyColors.backgroundColor, width: double.infinity, height: double.infinity, - child: Column( - children: [ - 16.height, - CategoriesList(name: "Oil Services", onTapped: () {}), - 16.height, - Expanded( - child: Container( - child: ListView.builder( - shrinkWrap: true, - itemCount: 30, - itemBuilder: (BuildContext context, int index) { - return ProviderDetailsCard( - onCardTapped: () { - navigateWithName(context, AppRoutes.bookProviderAppView); - }, - providerImageUrl: MyAssets.bnCar, - providerLocation: " 3km", - providerName: "Al Ahmed Maintenance", - providerRatings: "4.9", - ); - }), - ), - ), - ], + child: Consumer( + builder: (BuildContext context, ProvidersVM providersVM, Widget? child) { + return Column( + children: [ + 16.height, + FiltersList( + filterList: providersVM.providersFilterOptions, + onFilterTapped: (index) => providersVM.applyFilterOnProviders(index: index), + ), + 16.height, + Expanded( + child: Container( + child: ListView.builder( + shrinkWrap: true, + itemCount: 30, + itemBuilder: (BuildContext context, int index) { + return ProviderDetailsCard( + onCardTapped: () { + navigateWithName(context, AppRoutes.bookProviderAppView); + }, + providerImageUrl: MyAssets.bnCar, + providerLocation: " 3km", + providerName: "Al Ahmed Maintenance", + providerRatings: "4.9", + ); + }), + ), + ), + ], + ); + }, ), ); } diff --git a/lib/views/dashboard/widgets/bottom_nav_bar.dart b/lib/views/dashboard/widgets/bottom_nav_bar.dart index 420903d..b8ea535 100644 --- a/lib/views/dashboard/widgets/bottom_nav_bar.dart +++ b/lib/views/dashboard/widgets/bottom_nav_bar.dart @@ -1,14 +1,13 @@ import 'package:car_customer_app/view_models/dashboard_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; -import 'package:mc_common_app/generated/locale_keys.g.dart'; -import 'package:mc_common_app/theme/colors.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/generated/locale_keys.g.dart'; +import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; - class CustomBottomNavbar extends StatelessWidget { const CustomBottomNavbar({Key? key}) : super(key: key); diff --git a/lib/views/dashboard/widgets/drawer_widget.dart b/lib/views/dashboard/widgets/drawer_widget.dart index fb1e279..52a1f80 100644 --- a/lib/views/dashboard/widgets/drawer_widget.dart +++ b/lib/views/dashboard/widgets/drawer_widget.dart @@ -1,3 +1,7 @@ +import 'package:car_customer_app/view_models/dashboard_view_model.dart'; +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/material.dart'; +import 'package:image_picker/image_picker.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/routes.dart'; @@ -8,12 +12,8 @@ import 'package:mc_common_app/models/user/image_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/utils/utils.dart'; -import 'package:car_customer_app/view_models/dashboard_view_model.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; -import 'package:easy_localization/easy_localization.dart'; -import 'package:flutter/material.dart'; -import 'package:image_picker/image_picker.dart'; class CustomDrawer extends StatefulWidget { final DashboardVM dashboardVM; @@ -161,8 +161,7 @@ class _CustomDrawerState extends State { title: LocaleKeys.account.tr().toText(fontSize: 12), ), ListTile( - leading: - Image.asset( + leading: Image.asset( MyAssets.icWorldPng, width: 20, height: 20, diff --git a/lib/views/book_provider_app_view.dart b/lib/views/providers/book_provider_app_view.dart similarity index 83% rename from lib/views/book_provider_app_view.dart rename to lib/views/providers/book_provider_app_view.dart index a5174a8..e00bd2e 100644 --- a/lib/views/book_provider_app_view.dart +++ b/lib/views/providers/book_provider_app_view.dart @@ -3,11 +3,12 @@ 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/theme/colors.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/provider_details_card.dart'; import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; -import 'package:mc_common_app/widgets/button/show_fill_button.dart'; +import 'package:mc_common_app/widgets/common_widgets/time_slots.dart'; class BookProviderAppView extends StatefulWidget { const BookProviderAppView({Key? key}) : super(key: key); @@ -166,38 +167,3 @@ class ReviewAppointmentSection extends StatelessWidget { } } -class BuildTimeSlots extends StatelessWidget { - const BuildTimeSlots({Key? key}) : super(key: key); - - @override - Widget build(BuildContext context) { - return SizedBox( - height: 37, - width: double.infinity, - child: ListView.builder( - itemCount: 20, - scrollDirection: Axis.horizontal, - itemBuilder: (BuildContext context, int index) { - return InkWell( - onTap: () {}, - child: Container( - alignment: Alignment.center, - margin: EdgeInsets.only(right: 8), - width: 50, - decoration: BoxDecoration( - color: index < 1 ? MyColors.darkIconColor : null, - border: Border.all( - color: index < 1 ? MyColors.darkIconColor : MyColors.primaryColor, - width: 2, - ), - ), - child: "09:00".toText( - fontSize: 12, - color: index < 1 ? MyColors.white : null, - ), - ), - ); - }), - ); - } -}