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/generated/locale_keys.g.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.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'; import 'package:easy_localization/easy_localization.dart'; class BranchesFragment extends StatelessWidget { const BranchesFragment({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container( color: MyColors.backgroundColor, width: double.infinity, height: double.infinity, child: Consumer( builder: (BuildContext context, ProvidersVM providersVM, Widget? child) { return Column( children: [ 16.height, FiltersList( filterList: providersVM.providersFilterOptions, onFilterTapped: (index, selectedFilterId) => providersVM.applyFilterOnProviders(index: index), ), 16.height, Expanded( child: RefreshIndicator( onRefresh: () async { context.read().getAllNearBranches(isNeedToRebuild: true); }, child: SingleChildScrollView( child: Container( width: double.infinity, height: MediaQuery.of(context).size.height / 1.37, child: Consumer( builder: (context, model, _) { if (model.state == ViewState.busy) { return const Center(child: CircularProgressIndicator()); } else { return model.branches?.data == null ? const Center(child: Text("No Branch Found")) : model.branches!.data!.isEmpty ? Center(child: Text(LocaleKeys.no_branch.tr())) : ListView.separated( itemBuilder: (context, index) { return ProviderDetailsCard( onCardTapped: () { navigateWithName(context, AppRoutes.branchDetailPage, arguments: model.branches!.data![index]); }, providerImageUrl: MyAssets.bnCar, title: model.branches!.data![index].branchName ?? "", providerLocation: model.branches!.data![index].distanceKm.toString() + " KM", providerName: model.branches!.data![index].serviceProviderName ?? "", providerRatings: "4.9", items: model.branches!.data![index].branchServices, ); }, separatorBuilder: (context, index) { return 12.height; }, itemCount: model.branches!.data!.length, padding: const EdgeInsets.all(12), ); } }, ), ), ), ), ), ], ); }, ), ); } }