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