import 'package:car_provider_app/views/dashboard/widget/my_service_provider.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:mc_common_app/classes/app_state.dart'; 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/utils/enums.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/view_models/chat_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/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/common_widgets/view_all_widget.dart'; import 'package:badges/badges.dart' as b; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; import '../widget/appointment_slider_widget.dart'; class HomeFragment extends StatelessWidget { VoidCallback onTap; RefreshCallback onRefresh; HomeFragment({required this.onTap, required this.onRefresh, Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: CustomAppBar( isDrawerEnabled: true, leadingWidth: 100, profileImageUrl: MyAssets.carBanner, onTap: onTap, actions: [ Row( children: [ "${AppState().currentAppType}".toText(color: MyColors.darkTextColor).onPress(() async { print("myId: ${AppState().getUser.data!.userInfo!.userId}"); // final chatVM = context.read(); // await chatVM.buildHubConnection(); }), ], ), 10.width, IconButton( onPressed: () {}, icon: const b.Badge( badgeContent: Text( '3', style: TextStyle( fontSize: 10, color: Colors.white, ), ), badgeStyle: b.BadgeStyle( badgeColor: MyColors.primaryColor, padding: EdgeInsets.all(5), ), child: Icon(Icons.notifications_active), ), ), 10.width, ], ), body: SizedBox( width: double.infinity, height: double.infinity, child: RefreshIndicator( onRefresh: onRefresh, child: SingleChildScrollView( child: Column( children: [ ViewAllWidget( title: 'Upcoming Appointment', subTitle: 'View All', onSubtitleTapped: () {}, ).horPaddingMain(), const AppointmentSliderWidget().horPaddingMain(), 21.height, ViewAllWidget( title: 'My Branches', subTitle: 'View All', onSubtitleTapped: () {}, ).horPaddingMain(), const ServiceProviderWidget().horPaddingMain(), Consumer( builder: (BuildContext context, AdVM adVM, Widget? child) { if (adVM.state == ViewState.busy) { return const Center(child: CircularProgressIndicator()); } else { return Column( children: [ if (adVM.myActiveAdsForHome.isNotEmpty) ...[ Column( children: [ 15.height, ViewAllWidget( title: "My Active Ads", subTitle: "View All", onSubtitleTapped: () { // context.read().onNavbarTapped(3); // context.read().updateIsExploreAds(false); }, ).horPaddingMain(), BuildAdsList( shouldShowAdStatus: true, isAdsFragment: false, adsList: adVM.myActiveAdsForHome, scrollPhysics: const NeverScrollableScrollPhysics(), ), ], ) ], if (adVM.exploreAds.isNotEmpty) ...[ Column( children: [ 15.height, ViewAllWidget( title: "My Recommended Ads", subTitle: "View All", onSubtitleTapped: () { // context.read().onNavbarTapped(3); // context.read().updateIsExploreAds(true); // context.read().applyFilterOnExploreAds(index: 0); }, ).horPaddingMain(), BuildAdsList( shouldShowAdStatus: false, adsList: adVM.exploreAds.length >= 3 ? adVM.exploreAds.take(3).toList() : adVM.exploreAds, isAdsFragment: false, scrollPhysics: const NeverScrollableScrollPhysics(), ), ], ) ] ], ); } }, ), 21.height, // const AdWidget( // count: 4, // ), ], ), ), ), ), ); } }