Merge branch 'main' of github.com:akatreyt/sportstime

This commit is contained in:
Trey t
2026-02-21 20:45:32 -06:00
5 changed files with 22 additions and 8 deletions

View File

@@ -74,6 +74,7 @@ struct PaywallView: View {
}
}
.storeButton(.visible, for: .restorePurchases)
.storeButton(.visible, for: .redeemCode)
.subscriptionStoreControlStyle(.prominentPicker)
.subscriptionStoreButtonLabel(.displayName.multiline)
.onInAppPurchaseStart { product in

View File

@@ -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")

View File

@@ -116,7 +116,8 @@ struct TeamPickerStep: View {
.sheet(isPresented: $showTeamPicker) {
TeamPickerSheet(
selectedSport: $selectedSport,
selectedTeamId: $selectedTeamId
selectedTeamId: $selectedTeamId,
isPresented: $showTeamPicker
)
}
}
@@ -125,11 +126,11 @@ struct TeamPickerStep: View {
// MARK: - Team Picker Sheet
private struct TeamPickerSheet: View {
@Environment(\.dismiss) private var dismiss
@Environment(\.colorScheme) private var colorScheme
@Binding var selectedSport: Sport?
@Binding var selectedTeamId: String?
@Binding var isPresented: Bool
var body: some View {
NavigationStack {
@@ -142,7 +143,7 @@ private struct TeamPickerSheet: View {
onSelect: { teamId in
selectedSport = sport
selectedTeamId = teamId
dismiss()
isPresented = false
}
)
} label: {
@@ -171,7 +172,7 @@ private struct TeamPickerSheet: View {
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button("Cancel") { dismiss() }
Button("Cancel") { isPresented = false }
}
}
}

View File

@@ -115,7 +115,8 @@ struct TeamFirstWizardStep: View {
.sheet(isPresented: $showTeamPicker) {
TeamFirstPickerSheet(
selectedSport: $selectedSport,
selectedTeamIds: $selectedTeamIds
selectedTeamIds: $selectedTeamIds,
isPresented: $showTeamPicker
)
}
}
@@ -184,11 +185,11 @@ struct TeamFirstWizardStep: View {
// MARK: - Team First Picker Sheet
private struct TeamFirstPickerSheet: View {
@Environment(\.dismiss) private var dismiss
@Environment(\.colorScheme) private var colorScheme
@Binding var selectedSport: Sport?
@Binding var selectedTeamIds: Set<String>
@Binding var isPresented: Bool
var body: some View {
NavigationStack {
@@ -200,7 +201,7 @@ private struct TeamFirstPickerSheet: View {
selectedTeamIds: $selectedTeamIds,
onDone: {
selectedSport = sport
dismiss()
isPresented = false
}
)
} label: {
@@ -229,7 +230,7 @@ private struct TeamFirstPickerSheet: View {
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button("Cancel") { dismiss() }
Button("Cancel") { isPresented = false }
}
}
}

View File

@@ -215,6 +215,7 @@ final class ScenarioCPlanner: ScenarioPlanner {
from: gamesInRange,
stadiums: request.stadiums,
anchorGameIds: [], // No anchors in Scenario C
allowRepeatCities: request.preferences.allowRepeatCities,
stopBuilder: buildStops
)