fix: dismiss paywall and sync premium state after successful purchase
- Add purchaseSucceeded flag to PurchaseViewModel, set on purchase success - PaywallView observes the flag and dismisses itself automatically - ProfileTab.syncSubscription() writes PurchaseService.currentPlan back to UserProfile.subscriptionRaw via SwiftData on sheet dismiss
This commit is contained in:
@@ -7,6 +7,7 @@ final class PurchaseViewModel: ObservableObject {
|
||||
@Published var offerings: Offerings? = nil
|
||||
@Published var selectedPackage: Package? = nil
|
||||
@Published var isPurchasing = false
|
||||
@Published var purchaseSucceeded = false
|
||||
@Published var showError = false
|
||||
@Published var errorMessage: String? = nil
|
||||
|
||||
@@ -27,6 +28,7 @@ final class PurchaseViewModel: ObservableObject {
|
||||
do {
|
||||
try await service.purchase(package: package)
|
||||
AnalyticsService.shared.subscriptionStarted(plan: package.identifier)
|
||||
purchaseSucceeded = true
|
||||
} catch {
|
||||
errorMessage = error.localizedDescription
|
||||
showError = true
|
||||
|
||||
Reference in New Issue
Block a user