Преглед изворни кода

Close paywall automatically after premium unlock.

Dismiss any presented paywall overlay or window when entitlement changes to premium so users immediately return to the app.

Made-with: Cursor
huzaifahayat12 пре 3 месеци
родитељ
комит
4b69794d8e
1 измењених фајлова са 12 додато и 1 уклоњено
  1. 12 1
      meetings_app/ViewController.swift

+ 12 - 1
meetings_app/ViewController.swift

@@ -1132,6 +1132,16 @@ private extension ViewController {
         }
     }
 
+    private func dismissPaywallIfPresented() {
+        if !Thread.isMainThread {
+            DispatchQueue.main.async { [weak self] in
+                self?.dismissPaywallIfPresented()
+            }
+            return
+        }
+        closePaywallClicked(nil)
+    }
+
     @objc private func paywallFooterLinkClicked(_ sender: NSClickGestureRecognizer) {
         guard let view = sender.view else { return }
         let action = paywallFooterActionByView[ObjectIdentifier(view)]
@@ -1331,6 +1341,7 @@ private extension ViewController {
         }
 
         if !hadPremiumAccess && hasPremiumAccess {
+            dismissPaywallIfPresented()
             if selectedSidebarPage != .joinMeetings {
                 Task { [weak self] in
                     await self?.loadSchedule()
@@ -1532,7 +1543,7 @@ private extension ViewController {
                     await self?.loadSchedule()
                 }
                 self.showSimpleAlert(title: "Purchase Complete", message: "Premium has been unlocked successfully.")
-                self.paywallWindow?.performClose(nil)
+                self.dismissPaywallIfPresented()
                 self.scheduleRatingPromptAfterPremiumUpgrade()
             case .cancelled:
                 break