diff --git a/Shared/Onboarding/OnboardingData.swift b/Shared/Onboarding/OnboardingData.swift index 99844d1..66220b6 100644 --- a/Shared/Onboarding/OnboardingData.swift +++ b/Shared/Onboarding/OnboardingData.swift @@ -11,7 +11,12 @@ import UserNotifications // this is getting passed around and filled out // class and vars final class OnboardingData: NSObject, ObservableObject, Codable { - @Published var date: Date = Date() + @Published var date: Date = { + var components = Calendar.current.dateComponents([.year, .month, .day], from: Date()) + components.hour = 21 // 9 PM default (matches default .Today selection) + components.minute = 0 + return Calendar.current.date(from: components) ?? Date() + }() @Published var inputDay: DayOptions = .Today enum CodingKeys: CodingKey { diff --git a/Shared/Onboarding/views/OnboardingDay.swift b/Shared/Onboarding/views/OnboardingDay.swift index 1272fd0..d1f0070 100644 --- a/Shared/Onboarding/views/OnboardingDay.swift +++ b/Shared/Onboarding/views/OnboardingDay.swift @@ -65,7 +65,10 @@ struct OnboardingDay: View { example: "e.g. Tue reminder → Rate Tue", icon: "sun.max.fill", isSelected: onboardingData.inputDay == .Today, - action: { onboardingData.inputDay = .Today }, + action: { + onboardingData.inputDay = .Today + onboardingData.date = defaultTime(hour: 21) + }, testID: AccessibilityID.Onboarding.dayToday ) @@ -75,7 +78,10 @@ struct OnboardingDay: View { example: "e.g. Tue reminder → Rate Mon", icon: "moon.fill", isSelected: onboardingData.inputDay == .Previous, - action: { onboardingData.inputDay = .Previous }, + action: { + onboardingData.inputDay = .Previous + onboardingData.date = defaultTime(hour: 9) + }, testID: AccessibilityID.Onboarding.dayYesterday ) } @@ -107,6 +113,13 @@ struct OnboardingDay: View { ) .accessibilityIdentifier(AccessibilityID.Onboarding.dayScreen) } + + private func defaultTime(hour: Int) -> Date { + var components = Calendar.current.dateComponents([.year, .month, .day], from: Date()) + components.hour = hour + components.minute = 0 + return Calendar.current.date(from: components) ?? Date() + } } struct DayOptionCard: View { diff --git a/Shared/Onboarding/views/OnboardingMain.swift b/Shared/Onboarding/views/OnboardingMain.swift index 5788412..f29a0e7 100644 --- a/Shared/Onboarding/views/OnboardingMain.swift +++ b/Shared/Onboarding/views/OnboardingMain.swift @@ -19,12 +19,12 @@ struct OnboardingMain: View { // 1. Welcome screen OnboardingWelcome() - // 2. Reminder time - OnboardingTime(onboardingData: onboardingData) - - // 3. Which day to rate + // 2. Which day to rate OnboardingDay(onboardingData: onboardingData) + // 3. Reminder time + OnboardingTime(onboardingData: onboardingData) + // 4. Style customization OnboardingStyle(onboardingData: onboardingData)