import SwiftUI @main struct IDPGlobalApp: App { @StateObject private var model = AppViewModel() var body: some Scene { WindowGroup { RootView(model: model) .tint(AppTheme.accent) .task { await model.bootstrap() } .alert("Something went wrong", isPresented: errorPresented) { Button("OK") { model.errorMessage = nil } } message: { Text(model.errorMessage ?? "") } } #if os(macOS) .defaultSize(width: 1380, height: 920) #endif } private var errorPresented: Binding { Binding( get: { model.errorMessage != nil }, set: { isPresented in if !isPresented { model.errorMessage = nil } } ) } } private struct RootView: View { @ObservedObject var model: AppViewModel var body: some View { Group { if model.session == nil { LoginRootView(model: model) } else { HomeRootView(model: model) } } .background { AppBackground() } } }