import 'package:car_provider_app/view_models/subscriptions_view_model.dart'; import 'package:car_provider_app/views/subscriptions/widget/subscriptions_card.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; import 'package:mc_common_app/widgets/tab/menu_tabs.dart'; import 'package:provider/provider.dart'; class SubscriptionsPage extends StatelessWidget { const SubscriptionsPage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { context.read().getAllAvailableSubscriptions(null); return Scaffold( appBar: const CustomAppBar( title: "Subscriptions", ), body: SizedBox( width: double.infinity, height: double.infinity, child: Consumer(builder: (context, model, _) { return model.state == ViewState.busy ? const Center(child: CircularProgressIndicator()) : SingleChildScrollView( child: Column( children: [ 21.height, MenuTabs( model.selectedIndex, model.monthlyTabs, selectedColor: MyColors.primaryColor, onSelect: (DropValue selectedValue) { model.selectedMothlyTab = selectedValue; // model.selectedIndex = selectedIndex; model.filterSubscriptions(); model.setState(ViewState.idle); }, ), 21.height, ListView.separated( itemBuilder: (BuildContext context, int index) { return SubscriptionsCard( model.tempSubscriptions[index], isSubscribed: model.tempSubscriptions[index].isSubscribed ?? false, ); }, separatorBuilder: (BuildContext context, int index) { return 21.height; }, physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, itemCount: model.tempSubscriptions.length, ), 21.height, ], ), ); }), ), ); } }