Преглед на файлове

update user free trail detect logic, use local storage `isUserCanStarFreeTrail` to detect

Destiny преди 8 месеца
родител
ревизия
8433c2854b
променени са 2 файла, в които са добавени 25 реда и са изтрити 17 реда
  1. 1 1
      lib/module/store/discount/discount_controller.dart
  2. 24 16
      lib/module/store/discount/discount_view.dart

+ 1 - 1
lib/module/store/discount/discount_controller.dart

@@ -26,7 +26,7 @@ class DiscountController extends BaseController
 
   final Rxn<PaymentWay> currentSelectedPaymentWay = Rxn<PaymentWay>();
 
-  RxBool isFree = isUserCanStartFreeTrial().obs;
+  RxBool canUseFreeTrailPlan = isUserCanStartFreeTrial().obs;
 
   @override
   Future<void> onInit() async {

+ 24 - 16
lib/module/store/discount/discount_view.dart

@@ -30,6 +30,7 @@ class DiscountPage extends BasePage<DiscountController> {
     return Obx(() {
       bool isSelectFreeItem = controller.currentSelectedStoreItem.value?.freeTrialName != null;
       // 如果有免费试用,则使用免费试用,否则使用第一个
+      bool canUseFreeTrailPlan = controller.canUseFreeTrailPlan.value;
       StoreItem? freeItem = controller.storeItems.firstWhereOrNull((element) => element.freeTrialName != null) ?? controller.storeItems.firstOrNull;
       return Scaffold(
         backgroundColor: "#05050D".color,
@@ -49,6 +50,7 @@ class DiscountPage extends BasePage<DiscountController> {
                     if (freeItem != null)
                       _DiscountFreeTrialSpecialRow(
                         item: freeItem,
+                        canUseFreeTrailPlan: canUseFreeTrailPlan,
                         isSelected: controller.currentSelectedStoreItem.value?.id == freeItem.id,
                         onSelect: (title) {
                           controller.currentSelectedStoreItem.value = freeItem;
@@ -320,26 +322,32 @@ class _OtherPlansSection extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    return Column(
-      crossAxisAlignment: CrossAxisAlignment.center,
-      children: [
-        ...items.map((item) => Padding(
-          padding: EdgeInsets.only(bottom: 12.h),
-          child: _DiscountFreeTrialSpecialRow(
-            item: item,
-            isSelected: controller.currentSelectedStoreItem.value?.id == item.id,
-            onSelect: (item) {
-              controller.currentSelectedStoreItem.value = item;
-            },
-          ),
-        )),
-      ],
-    );
+    return Obx(() {
+      return Column(
+        crossAxisAlignment: CrossAxisAlignment.center,
+        children: [
+          ...items.map((item) =>
+              Padding(
+                padding: EdgeInsets.only(bottom: 12.h),
+                child: _DiscountFreeTrialSpecialRow(
+                  item: item,
+                  canUseFreeTrailPlan: controller.canUseFreeTrailPlan.value,
+                  isSelected: controller.currentSelectedStoreItem.value?.id ==
+                      item.id,
+                  onSelect: (item) {
+                    controller.currentSelectedStoreItem.value = item;
+                  },
+                ),
+              )),
+        ],
+      );
+    });
   }
 }
 
 class _DiscountFreeTrialSpecialRow extends StatelessWidget {
   final StoreItem item;
+  final bool canUseFreeTrailPlan;
   final bool isSelected;
   final Function(StoreItem) onSelect;
 
@@ -347,7 +355,7 @@ class _DiscountFreeTrialSpecialRow extends StatelessWidget {
     return item.freeTrialName != null;
   }
 
-  const _DiscountFreeTrialSpecialRow({Key? key, required this.item, required this.isSelected, required this.onSelect}) : super(key: key);
+  const _DiscountFreeTrialSpecialRow({Key? key, required this.item, required this.canUseFreeTrailPlan, required this.isSelected, required this.onSelect}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {