-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathWispApp.swift
More file actions
39 lines (35 loc) · 1.14 KB
/
WispApp.swift
File metadata and controls
39 lines (35 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import SwiftData
import SwiftUI
@main
struct WispApp: App {
@State private var apiClient = SpritesAPIClient()
@State private var browserCoordinator = InAppBrowserCoordinator()
@State private var chatSessionManager = ChatSessionManager()
@AppStorage("theme") private var theme: String = "system"
init() {
UserDefaults.standard.register(defaults: [
"claudeQuestionTool": true,
"worktreePerChat": true,
])
}
private var preferredColorScheme: ColorScheme? {
switch theme {
case "light": .light
case "dark": .dark
default: nil
}
}
var body: some Scene {
WindowGroup {
RootView()
.environment(apiClient)
.environment(browserCoordinator)
.environment(chatSessionManager)
.preferredColorScheme(preferredColorScheme)
.onChange(of: apiClient.isAuthenticated, initial: true) {
browserCoordinator.authToken = apiClient.spritesToken
}
}
.modelContainer(for: [SpriteChat.self, SpriteSession.self])
}
}