import SwiftUI @main struct IDPGlobalApp: App { @StateObject private var model = AppViewModel() var body: some Scene { WindowGroup { RootView(model: model) .tint(Color(red: 0.12, green: 0.40, blue: 0.31)) .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( LinearGradient( colors: [ Color(red: 0.96, green: 0.97, blue: 0.94), Color(red: 0.89, green: 0.94, blue: 0.92), Color(red: 0.94, green: 0.91, blue: 0.84) ], startPoint: .topLeading, endPoint: .bottomTrailing ) .ignoresSafeArea() ) } }