import SwiftUI import Photos @main struct NASBackupApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate @StateObject private var store = ConnectionStore.shared @StateObject private var engine = BackupEngine.shared @StateObject private var lanMonitor = LANMonitor.shared var body: some Scene { WindowGroup { RootView() .environmentObject(store) .environmentObject(engine) .environmentObject(lanMonitor) .preferredColorScheme(store.appearanceMode.resolvedScheme) } } } struct RootView: View { @EnvironmentObject var store: ConnectionStore var body: some View { Group { if store.savedConnection == nil { ConnectView() } else if !store.isSessionActive { LoginView() } else if store.savedConnection?.remotePath == "/" { FolderSetupView() } else if !store.onboardingPhotoShown { PhotoPermissionView() } else { MainTabView() } } .animation(.spring(response: 0.4, dampingFraction: 0.85), value: store.isSessionActive) .animation(.spring(response: 0.4, dampingFraction: 0.85), value: store.savedConnection?.remotePath) .animation(.spring(response: 0.4, dampingFraction: 0.85), value: store.onboardingPhotoShown) } }