import 'dart:async'; import 'package:car_provider_app/views/subscriptions/sheet/downgrade_data_sheet.dart'; import 'package:car_provider_app/views/subscriptions/sheet/upgrade_package_sheet.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/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/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/view_models/payment_view_model.dart'; import 'package:mc_common_app/view_models/subscriptions_view_model.dart'; import 'package:mc_common_app/widgets/bottom_sheet.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 StatefulWidget { const SubscriptionsPage({Key? key}) : super(key: key); @override State createState() => _SubscriptionsPageState(); } class _SubscriptionsPageState extends State { @override void initState() { // TODO: implement initState super.initState(); scheduleMicrotask(() { context.read().getSubscriptionBySP( AppState().getUser.data?.userInfo?.providerId.toString() ?? "", true, ); }); } @override Widget build(BuildContext context) { 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, isMainPage: false, onRenewSubscriptionClick: () { // context.read().updateOrderProviderSubscriptionId(id: model.tempSubscriptions[index].id??0); // navigateWithName( // context, // AppRoutes.paymentMethodsView, // arguments: PaymentTypes.subscription, // ); if (model.tempSubscriptions[index].subscriptionTypeEnum == SubscriptionTypeEnum.upgrade) { showMyBottomSheet(context, child: UpgradePackageSheet(model.tempSubscriptions[index])); } else { showMyBottomSheet(context, child: DowngradeDataSheet(model.tempSubscriptions[index])); } }, ); }, separatorBuilder: (BuildContext context, int index) { return 21.height; }, physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, itemCount: model.tempSubscriptions.length, ), 21.height, ], ), ); }), ), ); } }