TodosApp.swift 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //
  2. // TodosApp.swift
  3. // Todos
  4. //
  5. // Created by Sam Jaffe on 2/28/26.
  6. //
  7. import SwiftUI
  8. import SwiftData
  9. struct UserDefaultsKeys {
  10. private static let root = "leumasjaffe.Todos"
  11. static let UrlHints = root + ".URLHints"
  12. }
  13. @main
  14. struct TodosApp: App {
  15. var sharedModelContainer: ModelContainer = {
  16. let schema = Schema([
  17. Category.self,
  18. ])
  19. let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)
  20. do {
  21. return try ModelContainer(for: schema, configurations: [modelConfiguration])
  22. } catch {
  23. fatalError("Could not create ModelContainer: \(error)")
  24. }
  25. }()
  26. var body: some Scene {
  27. let urlHints = URLHintArray(
  28. fromSerial: UserDefaults.standard.array(forKey: UserDefaultsKeys.UrlHints)
  29. as? URLHintArray.Serial)
  30. WindowGroup {
  31. ContentView()
  32. }
  33. .modelContainer(sharedModelContainer)
  34. .environmentObject(urlHints)
  35. #if os(macOS)
  36. Settings {
  37. SettingsView()
  38. }
  39. .environmentObject(urlHints)
  40. #endif
  41. }
  42. }