fix saved time vs header time voting
only show onboarding once
This commit is contained in:
@@ -13,7 +13,7 @@ import SwiftUI
|
||||
|
||||
// AppDelegate.swift
|
||||
class AppDelegate: NSObject, UIApplicationDelegate {
|
||||
@AppStorage("savedOnboardingData") private var savedOnboardingData = OnboardingData()
|
||||
private let savedOnboardingData = UserDefaultsStore.getOnboarding()
|
||||
|
||||
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
|
||||
// PersistenceController.shared.clearDB()
|
||||
|
||||
@@ -8,8 +8,13 @@
|
||||
import Foundation
|
||||
|
||||
class UserDefaultsStore {
|
||||
enum Keys: String {
|
||||
case savedOnboardingData
|
||||
case needsOnboarding
|
||||
}
|
||||
|
||||
static func getOnboarding() -> OnboardingData {
|
||||
if let data = UserDefaults.standard.object(forKey: "savedOnboardingData") as? Data,
|
||||
if let data = UserDefaults.standard.object(forKey: UserDefaultsStore.Keys.savedOnboardingData.rawValue) as? Data,
|
||||
let model = try? JSONDecoder().decode(OnboardingData.self, from: data) {
|
||||
return model
|
||||
} else {
|
||||
@@ -20,7 +25,7 @@ class UserDefaultsStore {
|
||||
static func saveOnboarding(onboardingData: OnboardingData) -> OnboardingData {
|
||||
do {
|
||||
let data = try JSONEncoder().encode(onboardingData)
|
||||
UserDefaults.standard.set(data, forKey: "savedOnboardingData")
|
||||
UserDefaults.standard.set(data, forKey: UserDefaultsStore.Keys.savedOnboardingData.rawValue)
|
||||
return UserDefaultsStore.getOnboarding()
|
||||
} catch {
|
||||
fatalError("error saving")
|
||||
|
||||
@@ -42,13 +42,16 @@ final class OnboardingData: NSObject, ObservableObject, Codable {
|
||||
let currentMin = currentDateComp.minute,
|
||||
let savedHour = savedDateComp.hour,
|
||||
let savedMin = savedDateComp.minute {
|
||||
if currentHour >= savedHour &&
|
||||
currentMin >= savedMin {
|
||||
|
||||
if currentHour > savedHour {
|
||||
return true
|
||||
}
|
||||
|
||||
if currentHour == savedHour {
|
||||
return currentMin >= savedMin
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ import Charts
|
||||
|
||||
struct ContentView: View {
|
||||
@Environment(\.managedObjectContext) private var viewContext
|
||||
@State private var needsOnboarding: Bool = true
|
||||
|
||||
@AppStorage(UserDefaultsStore.Keys.needsOnboarding.rawValue) private var needsOnboarding = true
|
||||
|
||||
@State private var showingSheet = false
|
||||
@State private var showTodayInput = true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user