Rework onboarding flow and move premium prompt post-setup

This commit is contained in:
alexandrev-tibco
2026-02-26 10:50:09 +01:00
parent 6db6659330
commit 3937abeb6e
7 changed files with 114 additions and 182 deletions
+10 -6
View File
@@ -3,6 +3,9 @@ import SwiftData
@MainActor
final class OnboardingViewModel: ObservableObject {
static let pendingAutoAssignPromptKey = "onboarding_pending_auto_assign_prompt"
static let pendingPremiumPromptKey = "onboarding_pending_premium_prompt"
@Published var currentStep: Int = 0
@Published var selectedMealWindows: MealWindows = .dinnerOnly
@Published var includeWeekends: Bool = true
@@ -24,16 +27,15 @@ final class OnboardingViewModel: ObservableObject {
@Published var addedDishes: [(name: String, tagIds: [UUID])] = []
let maxOnboardingDishes = 10
let totalSteps = 6
let totalSteps = 5
var canContinue: Bool {
switch currentStep {
case 0: return true // Welcome
case 1: return true // Trial
case 2: return true // Meal windows (always has selection)
case 3: return true // Weekends (toggle)
case 4: return true // Calendar (optional)
case 5: return addedDishes.count >= 2 // Need at least 2 dishes
case 1: return true // Meal windows (always has selection)
case 2: return true // Weekends (toggle)
case 3: return true // Calendar (optional)
case 4: return addedDishes.count >= 2 // Need at least 2 dishes
default: return false
}
}
@@ -149,6 +151,8 @@ final class OnboardingViewModel: ObservableObject {
do {
try context.save()
UserDefaults.standard.set(true, forKey: Self.pendingAutoAssignPromptKey)
UserDefaults.standard.set(true, forKey: Self.pendingPremiumPromptKey)
return true
} catch {
print("Onboarding save failed: \(error)")