Просмотр исходного кода

Disable paywall purchase CTA until StoreKit products are loaded.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 4 недель назад
Родитель
Сommit
8f142727e7
1 измененных файлов с 5 добавлено и 2 удалено
  1. 5 2
      smart_printer/PaywallView.swift

+ 5 - 2
smart_printer/PaywallView.swift

@@ -1141,9 +1141,11 @@ final class PaywallView: NSView, AppearanceRefreshable {
 
 
     private func refreshPurchaseState() {
     private func refreshPurchaseState() {
         let store = StoreManager.shared
         let store = StoreManager.shared
+        let isProductReady = store.product(for: selectedPlan) != nil
         let isBusy = store.isPurchasing || store.isLoadingProducts
         let isBusy = store.isPurchasing || store.isLoadingProducts
-        ctaButton.isEnabled = !isBusy
-        ctaButton.alphaValue = isBusy ? 0.65 : 1
+        let isDisabled = isBusy || !isProductReady
+        ctaButton.isEnabled = !isDisabled
+        ctaButton.alphaValue = isDisabled ? 0.65 : 1
         refreshPrimaryFooterLink()
         refreshPrimaryFooterLink()
     }
     }
 
 
@@ -1462,6 +1464,7 @@ final class PaywallView: NSView, AppearanceRefreshable {
             config: paywallConfig,
             config: paywallConfig,
             introOffer: StoreManager.shared.eligibleIntroOffer(for: plan)
             introOffer: StoreManager.shared.eligibleIntroOffer(for: plan)
         )
         )
+        refreshPurchaseState()
     }
     }
 
 
     @objc private func purchaseTapped() {
     @objc private func purchaseTapped() {