diff --git a/SportsTime/Features/Paywall/Views/PaywallView.swift b/SportsTime/Features/Paywall/Views/PaywallView.swift index 6e6da67..69e0724 100644 --- a/SportsTime/Features/Paywall/Views/PaywallView.swift +++ b/SportsTime/Features/Paywall/Views/PaywallView.swift @@ -74,6 +74,7 @@ struct PaywallView: View { } } .storeButton(.visible, for: .restorePurchases) + .storeButton(.visible, for: .redeemCode) .subscriptionStoreControlStyle(.prominentPicker) .subscriptionStoreButtonLabel(.displayName.multiline) .onInAppPurchaseStart { product in diff --git a/SportsTime/Features/Settings/Views/SettingsView.swift b/SportsTime/Features/Settings/Views/SettingsView.swift index af18bbe..95eba1f 100644 --- a/SportsTime/Features/Settings/Views/SettingsView.swift +++ b/SportsTime/Features/Settings/Views/SettingsView.swift @@ -3,6 +3,7 @@ // SportsTime // +import StoreKit import SwiftUI struct SettingsView: View { @@ -11,6 +12,7 @@ struct SettingsView: View { @State private var viewModel = SettingsViewModel() @State private var showResetConfirmation = false @State private var showPaywall = false + @State private var showRedeemCode = false @State private var showOnboardingPaywall = false @State private var showSyncLogs = false @State private var isSyncActionInProgress = false @@ -79,6 +81,7 @@ struct SettingsView: View { .sheet(isPresented: $showPaywall) { PaywallView(source: "settings") } + .offerCodeRedemption(isPresented: $showRedeemCode) .sheet(isPresented: $showOnboardingPaywall) { OnboardingPaywallView(isPresented: $showOnboardingPaywall) } @@ -812,6 +815,13 @@ struct SettingsView: View { Label("Restore Purchases", systemImage: "arrow.clockwise") } .accessibilityIdentifier("settings.restorePurchasesButton") + + Button { + showRedeemCode = true + } label: { + Label("Redeem Code", systemImage: "giftcard") + } + .accessibilityIdentifier("settings.redeemCodeButton") } } header: { Text("Subscription")