import 'dart:developer'; import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/views/subscriptions/sheet/select_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/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/general_models/m_response.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/utils/utils.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/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; import 'package:easy_localization/easy_localization.dart'; class MySubscriptionsPage extends StatelessWidget { const MySubscriptionsPage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { context.read().getMySubscriptions(AppState().getUser.data?.userInfo?.providerId.toString() ?? ""); return Scaffold( appBar: const CustomAppBar( title: "My Subscriptions", ), body: SizedBox( width: double.infinity, height: double.infinity, child: Column( children: [ Expanded( child: Consumer(builder: (context, model, _) { return model.state == ViewState.busy ? const Center(child: CircularProgressIndicator()) : SingleChildScrollView( child: Column( children: [ 21.height, ListView.separated( itemBuilder: (BuildContext context, int index) { return SubscriptionsCard( model.allSubscriptions.data![index], isSubscribed: model.allSubscriptions.data![index].isSubscribed ?? false, backgroundColor: MyColors.darkIconColor, onRenewSubscriptionClick: () async { Utils.showLoading(context); MResponse response = await model.createSubscriptionOrder( model.allSubscriptions.data![index].id ?? 0, true, true, model.allSubscriptions.data![index].price.toString(), ); Utils.hideLoading(context); if (response.data != null) { log("response.data: ${response.data}"); context.read().updateOrderProviderSubscriptionId(id: response.data ?? 0); navigateWithName( context, AppRoutes.paymentMethodsView, arguments: PaymentTypes.subscription, ); } }, ).onPress( () { showMyBottomSheet(context, child: const SelectPackageSheet()); }, ); }, separatorBuilder: (BuildContext context, int index) { return 21.height; }, physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, itemCount: model.allSubscriptions.data!.length, ), 21.height, ], ), ); }), ), 21.height, ShowFillButton( title: LocaleKeys.modifyPackage.tr(), maxWidth: double.infinity, margin: const EdgeInsets.symmetric(horizontal: 21), onPressed: () { navigateWithName(context, ProviderAppRoutes.subscriptionsPage); }, ), 21.height, ], ), ), ); } }