Explorar o código

Premium sheet: show close button only for Pro subscribers

Hide the X for free users; refresh visibility when subscription status
changes so subscribers regain the control after purchase.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 hai 3 semanas
pai
achega
f3d247e4bd

+ 8 - 0
App for Indeed/Controllers/PremiumPlansWindowController.swift

@@ -134,6 +134,7 @@ private final class PremiumPlansViewController: NSViewController {
134
     private var planPriceFields: [String: (price: NSTextField, period: NSTextField)] = [:]
134
     private var planPriceFields: [String: (price: NSTextField, period: NSTextField)] = [:]
135
     private var planPurchaseButtons: [String: NSButton] = [:]
135
     private var planPurchaseButtons: [String: NSButton] = [:]
136
     private var subscriptionPrimaryFooterButton: NSButton?
136
     private var subscriptionPrimaryFooterButton: NSButton?
137
+    private var premiumCloseButton: NSButton?
137
     private var subscriptionStatusObservation: NSObjectProtocol?
138
     private var subscriptionStatusObservation: NSObjectProtocol?
138
 
139
 
139
     private let plans: [Plan] = [
140
     private let plans: [Plan] = [
@@ -215,6 +216,7 @@ private final class PremiumPlansViewController: NSViewController {
215
                 await self?.subscriptionStore.loadProducts()
216
                 await self?.subscriptionStore.loadProducts()
216
                 self?.applyStorePricing()
217
                 self?.applyStorePricing()
217
                 self?.updateSubscriptionPrimaryFooter()
218
                 self?.updateSubscriptionPrimaryFooter()
219
+                self?.updatePremiumCloseButtonVisibility()
218
             }
220
             }
219
         }
221
         }
220
         Task { await loadStoreProducts() }
222
         Task { await loadStoreProducts() }
@@ -303,6 +305,12 @@ private final class PremiumPlansViewController: NSViewController {
303
             footerRow.widthAnchor.constraint(equalTo: root.widthAnchor),
305
             footerRow.widthAnchor.constraint(equalTo: root.widthAnchor),
304
             crownIcon.heightAnchor.constraint(equalToConstant: 20)
306
             crownIcon.heightAnchor.constraint(equalToConstant: 20)
305
         ])
307
         ])
308
+        premiumCloseButton = closeButton
309
+        updatePremiumCloseButtonVisibility()
310
+    }
311
+
312
+    private func updatePremiumCloseButtonVisibility() {
313
+        premiumCloseButton?.isHidden = !subscriptionStore.isProActive
306
     }
314
     }
307
 
315
 
308
     private func makePricingCard(_ plan: Plan) -> NSView {
316
     private func makePricingCard(_ plan: Plan) -> NSView {