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/generated/locale_keys.g.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/view_models/requests_view_model.dart'; import 'package:mc_common_app/views/advertisement/ads_list.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/categories_list.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; import 'package:easy_localization/easy_localization.dart'; class AdsFragment extends StatelessWidget { bool isNeedAppBar; VoidCallback onBackButtonTapped; AdsFragment({Key? key, this.isNeedAppBar = true, required this.onBackButtonTapped}) : super(key: key); Future onRefreshAds(BuildContext context) async { AdVM adVM = context.read(); await adVM.getExploreAds(); await adVM.getMyAds(); } @override Widget build(BuildContext context) { return Scaffold( appBar: !isNeedAppBar ? null : CustomAppBar( title: LocaleKeys.myServiceBranches.tr(), onBackButtonTapped: onBackButtonTapped, ), body: Container( color: MyColors.backgroundColor, width: double.infinity, height: double.infinity, child: Column( children: [ 16.height, // Consumer( // builder: (BuildContext context, AdVM adVM, Widget? child) { // return Column( // children: [ // 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); // }, // ), // ), // ], // ).horPaddingMain(), // if (adVM.isExploreAdsTapped && adVM.exploreAds.isNotEmpty) ...[ // 16.height, // FiltersList(filterList: adVM.exploreAdsFilterOptions, onFilterTapped: (index, selectedFilterId) => adVM.applyFilterOnExploreAds(index: index), needLeftPadding: false) // .paddingOnly(left: 21), // ], // if (!adVM.isExploreAdsTapped && adVM.myAds.isNotEmpty) ...[ // 16.height, // FiltersList( // filterList: adVM.myAdsFilterOptions, // onFilterTapped: (index, selectedFilterId) => adVM.applyFilterOnMyAds(index: index, selectedFilterId: selectedFilterId), // needLeftPadding: false) // .paddingOnly(left: 21), // ], // ], // ); // }, // ), 16.height, Expanded( child: RefreshIndicator( onRefresh: () => onRefreshAds(context), child: Consumer( builder: (BuildContext context, AdVM adVM, Widget? child) { return BuildAdsList( isAdsFragment: true, shouldShowAdStatus: !adVM.isExploreAdsTapped, adsList: adVM.isExploreAdsTapped && adVM.exploreAdsFilteredList.isNotEmpty ? adVM.exploreAdsFilteredList : !adVM.isExploreAdsTapped && adVM.myAdsFilteredList.isNotEmpty ? adVM.myAdsFilteredList : [], ); }, ), ), ) ], ), ), floatingActionButton: FloatingActionButton( onPressed: () { context.read().getVehicleTypes(); context.read().populateRequestsFilterList(); navigateWithName(context, AppRoutes.createAdView); }, backgroundColor: MyColors.darkPrimaryColor, child: const Icon( Icons.add, color: MyColors.white, ), ), ); } }