diff --git a/lib/views/settings/branch/branch_detail_page.dart b/lib/views/settings/branch/branch_detail_page.dart index d5377e6..385460e 100644 --- a/lib/views/settings/branch/branch_detail_page.dart +++ b/lib/views/settings/branch/branch_detail_page.dart @@ -1,15 +1,14 @@ -import 'dart:convert'; -import 'dart:developer'; - +import 'dart:async'; import 'package:car_provider_app/config/provider_routes.dart'; +import 'package:car_provider_app/views/settings/branch/dealer/widget/assign_dealer_user_sheet.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/utils/utils.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/settings/services/services_list_page.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; - -import 'package:car_provider_app/view_models/branch_view_model.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/routes.dart'; @@ -20,23 +19,28 @@ import 'package:mc_common_app/models/provider_branches_models/profile/categroy.d 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/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 '../../../generated/locale_keys.g.dart'; - class BranchDetailPage extends StatelessWidget { BranchDetailModel branchData; - BranchDetailPage(this.branchData); + BranchDetailPage(this.branchData, {super.key}); List categories = []; - @override - Widget build(BuildContext context) { + getBranchUsers(BuildContext context) { + scheduleMicrotask(() { + context.read().getAllProviderDealers( + {"ServiceProviderBranchID": branchData.id.toString(), "ServiceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? ""}, + ); + }); + } + + filterBranch() { branchData.branchServices!.forEach((element) { categories.add( CategoryData( @@ -56,6 +60,12 @@ class BranchDetailPage extends StatelessWidget { }); } branchData.categories = categories; + } + + @override + Widget build(BuildContext context) { + filterBranch(); + getBranchUsers(context); return Scaffold( appBar: CustomAppBar( title: branchData.branchName.toString(), @@ -77,14 +87,11 @@ class BranchDetailPage extends StatelessWidget { Row( children: [ Expanded( - child: titleWidget(MyAssets.icBranches, - LocaleKeys.branchInfo.tr()), + child: titleWidget(MyAssets.icBranches, LocaleKeys.branchInfo.tr()), ), IconButton( onPressed: () { - navigateWithName( - context, ProviderAppRoutes.defineBranch, - arguments: branchData); + navigateWithName(context, ProviderAppRoutes.defineBranch, arguments: branchData); }, icon: SvgPicture.asset(MyAssets.icEdit), ) @@ -92,17 +99,11 @@ class BranchDetailPage extends StatelessWidget { ), Column( children: [ - showData("${LocaleKeys.country.tr()}:", - branchData.countryName.toString()), - showData("${LocaleKeys.city.tr()}:", - branchData.cityName.toString()), - showData("${LocaleKeys.branchName.tr()}:", - branchData.branchName.toString()), - showData( - "${LocaleKeys.branchDescription.tr()}:", - branchData.branchDescription.toString()), - showData("${LocaleKeys.address.tr()}:", - branchData.address.toString()), + showData("${LocaleKeys.country.tr()}:", branchData.countryName.toString()), + showData("${LocaleKeys.city.tr()}:", branchData.cityName.toString()), + showData("${LocaleKeys.branchName.tr()}:", branchData.branchName.toString()), + showData("${LocaleKeys.branchDescription.tr()}:", branchData.branchDescription.toString()), + showData("${LocaleKeys.address.tr()}:", branchData.address.toString()), ], ), ], @@ -111,8 +112,7 @@ class BranchDetailPage extends StatelessWidget { Container( width: double.infinity, color: MyColors.darkIconColor, - padding: const EdgeInsets.symmetric( - horizontal: 20, vertical: 8), + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 8), child: Row( children: [ const Icon( @@ -122,11 +122,11 @@ class BranchDetailPage extends StatelessWidget { 8.width, Expanded( child: LocaleKeys.setorEditBranchSchedule.tr().toText( - isUnderLine: true, - fontSize: 14, - isBold: true, - color: Colors.white, - ), + isUnderLine: true, + fontSize: 14, + isBold: true, + color: Colors.white, + ), ), const Icon( Icons.arrow_forward, @@ -136,9 +136,7 @@ class BranchDetailPage extends StatelessWidget { ], ), ).onPress(() { - navigateWithName( - context, ProviderAppRoutes.schedulesList, - arguments: branchData.id.toString()); + navigateWithName(context, ProviderAppRoutes.schedulesList, arguments: branchData.id.toString()); }), Row( crossAxisAlignment: CrossAxisAlignment.center, @@ -154,10 +152,10 @@ class BranchDetailPage extends StatelessWidget { ), 8.width, LocaleKeys.addServices.tr().toText( - fontSize: 14, - color: MyColors.lightTextColor, - isBold: true, - ), + fontSize: 14, + color: MyColors.lightTextColor, + isBold: true, + ), ], ) .toContainer( @@ -165,8 +163,7 @@ class BranchDetailPage extends StatelessWidget { backgroundColor: MyColors.darkWhiteColor, width: double.infinity, paddingAll: 20, - margin: - const EdgeInsets.only(left: 20, right: 20, top: 20), + margin: const EdgeInsets.only(left: 20, right: 20, top: 20), ) .onPress(() { navigateWithName( @@ -184,17 +181,12 @@ class BranchDetailPage extends StatelessWidget { itemBuilder: (context, pIndex) { return InkWell( onTap: () { - categories[pIndex].branchId = - branchData.id.toString(); - categories[pIndex].branchName = - branchData.branchName.toString(); - navigateWithName( - context, ProviderAppRoutes.servicesList, - arguments: categories[pIndex]); + categories[pIndex].branchId = branchData.id.toString(); + categories[pIndex].branchName = branchData.branchName.toString(); + navigateWithName(context, ProviderAppRoutes.servicesList, arguments: categories[pIndex]); }, child: Row( - crossAxisAlignment: - CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Padding( @@ -208,19 +200,12 @@ class BranchDetailPage extends StatelessWidget { 8.width, Expanded( child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - mainAxisAlignment: - MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, children: [ Row( children: [ - categories[pIndex] - .categoryName - .toString() - .toText( - fontSize: 16, - isBold: true), + categories[pIndex].categoryName.toString().toText(fontSize: 16, isBold: true), // Padding( // padding: const EdgeInsets.all(4.0), // child: SvgPicture.asset( @@ -230,46 +215,26 @@ class BranchDetailPage extends StatelessWidget { // ), // ), ], - mainAxisAlignment: - MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.spaceBetween, ), Row( children: [ Expanded( child: ListView.builder( - itemBuilder: - (context, index) { + itemBuilder: (context, index) { return Container( - child: (EasyLocalization.of( - context) - ?.currentLocale - ?.countryCode == - "SA" - ? categories[ - pIndex] - .services![ - index] - .serviceDescriptionN - .toString() - : categories[ - pIndex] - .services![ - index] - .serviceDescription - .toString()) + child: (EasyLocalization.of(context)?.currentLocale?.countryCode == "SA" + ? categories[pIndex].services![index].serviceDescriptionN.toString() + : categories[pIndex].services![index].serviceDescription.toString()) .toText( fontSize: 12, - color: MyColors - .lightTextColor, + color: MyColors.lightTextColor, isBold: true, ), ); }, - itemCount: categories[pIndex] - .services - ?.length, - physics: - const NeverScrollableScrollPhysics(), + itemCount: categories[pIndex].services?.length, + physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, padding: EdgeInsets.zero, ), @@ -282,18 +247,15 @@ class BranchDetailPage extends StatelessWidget { ), ), ], - mainAxisAlignment: - MainAxisAlignment.end, - crossAxisAlignment: - CrossAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.end, ) ], )), ], ).toContainer( width: double.infinity, - padding: const EdgeInsets.symmetric( - horizontal: 12, vertical: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), isShadowEnabled: true, ), ); @@ -302,8 +264,7 @@ class BranchDetailPage extends StatelessWidget { physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, padding: const EdgeInsets.all(20), - separatorBuilder: - (BuildContext context, int index) { + separatorBuilder: (BuildContext context, int index) { return 12.height; }, ), @@ -327,9 +288,16 @@ class BranchDetailPage extends StatelessWidget { borderColor: MyColors.darkPrimaryColor, txtColor: MyColors.darkPrimaryColor, isFilled: false, - onPressed: () { - navigateWithName(context, ProviderAppRoutes.dealerUser, - arguments: branchData.id.toString()); + onPressed: () async { + showMyBottomSheet( + context, + child: AssignDealerUserSheet( + branchId: branchData.id.toString(), + callBackFunc: () { + getBranchUsers(context); + }, + ), + ); }, ), ), @@ -340,6 +308,16 @@ class BranchDetailPage extends StatelessWidget { ); } + bool validation(BuildContext context) { + bool isValid = false; + for (var element in context.read().allProviderDealersList) { + if (element.isBranchUser ?? false) { + isValid = true; + } + } + return isValid; + } + Widget titleWidget(String icon, String title) { return Row( children: [ diff --git a/lib/views/settings/branch/dealer/widget/add_phone_num_wiget.dart b/lib/views/settings/branch/dealer/widget/add_phone_num_wiget.dart index 0c2c15e..24faa38 100644 --- a/lib/views/settings/branch/dealer/widget/add_phone_num_wiget.dart +++ b/lib/views/settings/branch/dealer/widget/add_phone_num_wiget.dart @@ -108,11 +108,15 @@ class _AddPhoneNumWidgetState extends State { if (_country != null) { List dropList = []; _country!.data?.forEach((element) { - dropList.add(DropValue(element.id ?? 0, (element.countryName ?? "") + " " + (element.countryCode ?? ""), element.countryCode ?? "")); + dropList.add(DropValue(element.id ?? 0, "${element.countryName ?? ""} ${element.countryCode ?? ""}", element.countryCode ?? "")); }); - return DropdownField((DropValue value) { - countryCode = value.subValue; - }, list: dropList, hint: LocaleKeys.selectCountryCode.tr()); + return DropdownField( + (DropValue value) { + countryCode = value.subValue; + }, + list: dropList, + hint: countryCode.isNotEmpty ? countryCode.toString() : LocaleKeys.selectCountryCode.tr(), + ); } else { return const Center( child: CircularProgressIndicator(), diff --git a/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart b/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart index ea42c13..ed232ef 100644 --- a/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart +++ b/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart @@ -1,3 +1,4 @@ +import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/settings/branch/dealer/widget/add_phone_num_wiget.dart'; @@ -16,13 +17,13 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; import 'package:easy_localization/easy_localization.dart'; - // ignore: must_be_immutable class AssignDealerUserSheet extends StatefulWidget { String branchId; VoidCallback callBackFunc; + bool? isFromBranch; - AssignDealerUserSheet({required this.branchId, required this.callBackFunc, Key? key}) : super(key: key); + AssignDealerUserSheet({required this.branchId, required this.callBackFunc, this.isFromBranch, Key? key}) : super(key: key); @override State createState() => _AssignDealerUserSheetState(); @@ -41,11 +42,7 @@ class _AssignDealerUserSheetState extends State { } getBranchUsers() { - provider.getAllProviderDealers({ - // "id": services!.data![i].id, - "ServiceProviderBranchID": widget.branchId, - "ServiceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? "" - }); + provider.getAllProviderDealers({"ServiceProviderBranchID": widget.branchId, "ServiceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? ""}); } @override @@ -62,7 +59,7 @@ class _AssignDealerUserSheetState extends State { return const Center(child: CircularProgressIndicator()); } else { if (model.allProviderDealersList.isEmpty) { - return Center(child: Text(LocaleKeys.noUserAddedYet.tr())); + return Center(child: Text(LocaleKeys.noUserAddedYet.tr())); } else { return ListView.separated( itemBuilder: (context, index) { @@ -93,7 +90,7 @@ class _AssignDealerUserSheetState extends State { Utils.showLoading(context); List userIds = []; for (var element in provider.allProviderDealersList) { - if (element.isBranchUser??false) { + if (element.isBranchUser ?? false) { userIds.add(element.id); } } @@ -122,14 +119,9 @@ class _AssignDealerUserSheetState extends State { txtColor: MyColors.darkPrimaryColor, isFilled: false, onPressed: () { - showMyBottomSheet( - context, - isDismissible: false, - child: const AddPhoneNumWidget(), - callBackFunc: () { - getBranchUsers(); - }, - ); + context.read().checkUserSubscription(SubscriptionActionTypeEnum.users, context, callback: () { + getBranchUsers(); + }); }, ) ], @@ -159,8 +151,8 @@ class _AssignDealerUserSheetState extends State { ("${model.allProviderDealersList[index].firstName} ${model.allProviderDealersList[index].lastName}").toText(fontSize: 16, isBold: true), 8.height, itemWidget("Role", "Dealer User"), - itemWidget("Email", model.allProviderDealersList[index].email??""), - itemWidget("Phone", model.allProviderDealersList[index].mobileNo??"") + itemWidget("Email", model.allProviderDealersList[index].email ?? ""), + itemWidget("Phone", model.allProviderDealersList[index].mobileNo ?? "") ], ), ), @@ -184,7 +176,7 @@ class _AssignDealerUserSheetState extends State { bool validation() { bool isValid = false; for (var element in provider.allProviderDealersList) { - if (element.isBranchUser??false) { + if (element.isBranchUser ?? false) { isValid = true; } } diff --git a/lib/views/subscriptions/all_subscriptions_page.dart b/lib/views/subscriptions/all_subscriptions_page.dart index bd7fecd..2ed251d 100644 --- a/lib/views/subscriptions/all_subscriptions_page.dart +++ b/lib/views/subscriptions/all_subscriptions_page.dart @@ -82,7 +82,7 @@ class _SubscriptionsPageState extends State { } }, onUpgradeSubscriptionClick: () { - showMyBottomSheet(context, child: UpgradePackageSheet(subcriptionsVM.tempSubscriptions[index])); + showMyBottomSheet(context, child: UpgradePackageSheet(subcriptionsVM.tempSubscriptions[index], false)); }, onDowngradeSubscriptionClick: () { showMyBottomSheet(context, child: DowngradeDataSheet(subcriptionsVM.tempSubscriptions[index])); diff --git a/lib/views/subscriptions/my_subscritions_page.dart b/lib/views/subscriptions/my_subscritions_page.dart index 6773dec..d1d2830 100644 --- a/lib/views/subscriptions/my_subscritions_page.dart +++ b/lib/views/subscriptions/my_subscritions_page.dart @@ -69,17 +69,43 @@ class _MySubscriptionsPageState extends State { backgroundColor: MyColors.darkIconColor, isMainPage: model.mySubscriptionsBySp[index].isExpired ?? false, onRenewSubscriptionClick: () async { - Utils.showLoading(context); - MResponse response = await model.createSubscriptionOrder(model.mySubscriptionsBySp[index].subscriptionID ?? 0, true, true); - Utils.hideLoading(context); - if (response.data != null) { - context.read().updateOrderProviderSubscriptionId(id: response.data ?? 0); - navigateWithName(context, AppRoutes.paymentMethodsView, arguments: PaymentTypes.subscription); - } + print(sub.toJson()); + showMyBottomSheet( + context, + child: UpgradePackageSheet( + Subscription( + id: sub.subscriptionID, + isMyCurrentPackage: true, + isExpired: sub.isExpired, + isActive: sub.isActive, + isSubscribed: true, + name: sub.subscriptionName, + description: sub.subscriptionDescription, + numberOfAds: sub.totalAds ?? 0, + numberOfBranches: sub.totalBranches ?? 0, + numberOfSubUsers: sub.totalSubUsers ?? 0, + countryId: 1, + countryName: "KSA", + currency: "SAR", + price: 0, + dateEnd: sub.dateEnd, + dateStart: sub.dateStart, + serviceProviderId: sub.serviceProviderId, + subscriptionAppliedId: sub.serviceProviderId, + ), + true), + ); + + // Utils.showLoading(context); + // MResponse response = await model.createSubscriptionOrder(model.mySubscriptionsBySp[index].subscriptionID ?? 0, true, true); + // Utils.hideLoading(context); + // if (response.data != null) { + // context.read().updateOrderProviderSubscriptionId(id: response.data ?? 0); + // navigateWithName(context, AppRoutes.paymentMethodsView, arguments: PaymentTypes.subscription); + // } }, onUpgradeSubscriptionClick: () { - print("Upgrade"); - print(sub.toJson()); + // print(sub.toJson()); // showMyBottomSheet( // context, // child: UpgradePackageSheet( diff --git a/lib/views/subscriptions/sheet/upgrade_package_sheet.dart b/lib/views/subscriptions/sheet/upgrade_package_sheet.dart index 085b14e..bb7521d 100644 --- a/lib/views/subscriptions/sheet/upgrade_package_sheet.dart +++ b/lib/views/subscriptions/sheet/upgrade_package_sheet.dart @@ -2,8 +2,10 @@ import 'dart:async'; 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/extensions/string_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/models/subscriptions_models/subscription_model.dart'; import 'package:mc_common_app/theme/colors.dart'; @@ -17,11 +19,13 @@ import 'package:mc_common_app/views/payments/payment_methods_view.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; +import 'package:easy_localization/easy_localization.dart'; class UpgradePackageSheet extends StatefulWidget { Subscription subscription; + bool isRenew; - UpgradePackageSheet(this.subscription, {super.key}); + UpgradePackageSheet(this.subscription, this.isRenew, {super.key}); @override State createState() => _UpgradePackageSheetState(); @@ -61,21 +65,21 @@ class _UpgradePackageSheetState extends State { ); } else { if (isNowSelected) { - price = model.newPrice.toString(); + price = double.parse(model.newPrice).toStringAsFixed(2); } return Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, children: [ - "When do you want to upgrade".toText( + (widget.isRenew ? LocaleKeys.whendoyouWanttoRenew.tr() : LocaleKeys.whendoyouWanttoUpgrade.tr()).toText( fontSize: 18, fontWeight: FontWeight.bold, ), 12.height, packageItem( - "Now", - ("Your subscription will upgrade now. Affecting from ${DateHelper.formatAsLongDate(widget.subscription.dateEnd ?? DateTime.now())}"), - model.newPrice.toString(), + LocaleKeys.nowVar.tr(), + (LocaleKeys.yourSubscriptionUpgradeAffectingFrom.tr() + " ${DateHelper.formatAsLongDate(widget.subscription.dateEnd ?? DateTime.now())}"), + double.parse(model.newPrice).toStringAsFixed(2), isNowSelected, ).onPress(() { setState(() { @@ -85,8 +89,8 @@ class _UpgradePackageSheetState extends State { }), 6.height, packageItem( - "Upgrade after current expiry", - ("Your subscription will upgrade after you current subscription will end. Affecting from 27 January, 2024 ${DateHelper.formatAsLongDate(widget.subscription.dateEnd ?? DateTime.now())}"), + LocaleKeys.upgradeAfterCurrentExpiry.tr(), + (LocaleKeys.yourSubscriptionUpgradeCurrentSubscriptionAffectingFrom.tr() + " ${DateHelper.formatAsLongDate(widget.subscription.dateEnd ?? DateTime.now())}"), widget.subscription.price.toString(), isNowSelected ? false : true, ).onPress(() { @@ -97,30 +101,40 @@ class _UpgradePackageSheetState extends State { }), 12.height, ShowFillButton( - title: "Upgrade", + title: widget.isRenew ? LocaleKeys.renewVar.tr() : LocaleKeys.upgradeVar.tr(), maxWidth: double.infinity, onPressed: () async { - navigateTo( - context, - PaymentMethodsView( - paymentType: PaymentTypes.subscription, - onTempContinue: () async { - Utils.showLoading(context); - MResponse mResponse = await model.payForSubscription(widget.subscription.id!, isNowSelected, false, price); - Utils.hideLoading(context); - if (mResponse.messageStatus == 1) { - context.read().updateOrderProviderSubscriptionId(id: mResponse.data); + if (widget.isRenew) { + Utils.showLoading(context); + MResponse response = await model.createSubscriptionOrder(widget.subscription.id ?? 0, true, true); + Utils.hideLoading(context); + if (response.data != null) { + context.read().updateOrderProviderSubscriptionId(id: response.data ?? 0); + navigateWithName(context, AppRoutes.paymentMethodsView, arguments: PaymentTypes.subscription); + } + } else { + navigateTo( + context, + PaymentMethodsView( + paymentType: PaymentTypes.subscription, + onTempContinue: () async { + Utils.showLoading(context); + MResponse mResponse = await model.payForSubscription(widget.subscription.id!, isNowSelected, false, price); + Utils.hideLoading(context); + if (mResponse.messageStatus == 1) { + context.read().updateOrderProviderSubscriptionId(id: mResponse.data); - // Utils.showToast( - // "Subscriptions is successfully updated"); - return true; - } else { - Utils.showToast(mResponse.message.toString()); - return false; - } - }, - ), - ); + // Utils.showToast( + // "Subscriptions is successfully updated"); + return true; + } else { + Utils.showToast(mResponse.message.toString()); + return false; + } + }, + ), + ); + } }, ), ], @@ -171,7 +185,7 @@ class _UpgradePackageSheetState extends State { 2.width, Padding( padding: const EdgeInsets.only(bottom: 2), - child: "SAR".toText(fontSize: 16, isBold: true, color: MyColors.lightTextColor), + child: LocaleKeys.sar.tr().toText(fontSize: 16, isBold: true, color: MyColors.lightTextColor), ), ], ) diff --git a/lib/views/subscriptions/widget/my_subscriptions_card.dart b/lib/views/subscriptions/widget/my_subscriptions_card.dart index e047e16..ca81db6 100644 --- a/lib/views/subscriptions/widget/my_subscriptions_card.dart +++ b/lib/views/subscriptions/widget/my_subscriptions_card.dart @@ -45,35 +45,37 @@ class MySubscriptionsCard extends StatelessWidget { ), // if (providerSubscriptionModel.isActive!) "Current Package".toText(color: MyColors.primaryColor, fontWeight: FontWeight.bold), 5.width, - if (!providerSubscriptionModel.isExpired!) - Row( - children: [ - Container( - height: 15, - width: 15, - decoration: BoxDecoration( - shape: BoxShape.circle, - color: MyColors.white, - ), - alignment: Alignment.center, - child: Icon( - Icons.done, - size: 12, - color: MyColors.primaryColor, - ), - ), - 5.width, - "Subscribed".toText(color: MyColors.white) - ], - ) - .toContainer( - backgroundColor: MyColors.primaryColor, - borderRadius: 30, - padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 7), - ) - .onPress(() { - onUpgradeSubscriptionClick(); - }) + + Row( + children: [ + providerSubscriptionModel.isExpired! + ? const SizedBox() + : Container( + height: 15, + width: 15, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: MyColors.white, + ), + alignment: Alignment.center, + child: const Icon( + Icons.done, + size: 12, + color: MyColors.primaryColor, + ), + ), + 5.width, + (providerSubscriptionModel.isExpired! ? "Expired" : "Subscribed").toText(color: providerSubscriptionModel.isExpired! ? MyColors.darkTextColor : MyColors.white) + ], + ) + .toContainer( + backgroundColor: providerSubscriptionModel.isExpired! ? MyColors.greyButtonColor : MyColors.primaryColor, + borderRadius: 30, + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 7), + ) + .onPress(() { + providerSubscriptionModel.isExpired! ? onRenewSubscriptionClick() : onUpgradeSubscriptionClick(); + }) ], ), 6.height, @@ -107,7 +109,7 @@ class MySubscriptionsCard extends StatelessWidget { // ), Row( children: [ - "Expires on ${DateHelper.formatAsDayMonthYear(providerSubscriptionModel.dateEnd)}".toText( + "${providerSubscriptionModel.isExpired! ? "Expired" : "Expires"} on ${DateHelper.formatAsDayMonthYear(providerSubscriptionModel.dateEnd)}".toText( fontSize: 14, color: textColor, ),