36 lines
1.0 KiB
Swift
36 lines
1.0 KiB
Swift
|
|
// JarvisApp.swift
|
||
|
|
|
||
|
|
import SwiftUI
|
||
|
|
import SwiftData
|
||
|
|
|
||
|
|
@main
|
||
|
|
struct JarvisApp: App {
|
||
|
|
@StateObject private var settings = ServerSettings.shared
|
||
|
|
@StateObject private var store = StoryStore.shared
|
||
|
|
@StateObject private var ws = WebSocketManager.shared
|
||
|
|
@StateObject private var connectivity = ConnectivitySettings.shared
|
||
|
|
@StateObject private var connManager = ConnectivityManager.shared
|
||
|
|
|
||
|
|
var body: some Scene {
|
||
|
|
WindowGroup {
|
||
|
|
Group {
|
||
|
|
if settings.isConfigured {
|
||
|
|
RootTabView()
|
||
|
|
} else {
|
||
|
|
OnboardingView()
|
||
|
|
}
|
||
|
|
}
|
||
|
|
.environmentObject(settings)
|
||
|
|
.environmentObject(store)
|
||
|
|
.environmentObject(ws)
|
||
|
|
.environmentObject(connectivity)
|
||
|
|
.environmentObject(connManager)
|
||
|
|
.task {
|
||
|
|
connManager.start()
|
||
|
|
await connManager.resolveAndActivate()
|
||
|
|
}
|
||
|
|
}
|
||
|
|
.modelContainer(for: [CachedStory.self, CachedArticle.self])
|
||
|
|
}
|
||
|
|
}
|