// // WorkoutsApp.swift // Workouts // // Copyright 2025 Rouslan Zenetl. All Rights Reserved. // import SwiftUI import SwiftData import UIKit @main struct WorkoutsApp: App { @State private var services = AppServices() @Environment(\.scenePhase) private var scenePhase var body: some Scene { WindowGroup { #if DEBUG if ScreenshotSeed.isActive { ScreenshotRootView(services: services) } else { root } #else root #endif } // Keep the screen lit for the whole app, not just while logging — the phone is // often propped up across the room during a workout. iOS clears this flag when // the app is backgrounded, so re-assert it each time the scene becomes active. .onChange(of: scenePhase, initial: true) { _, phase in UIApplication.shared.isIdleTimerDisabled = (phase == .active) } } private var root: some View { RootGateView() .environment(services) .environment(services.syncEngine) .environment(services.liveRunState) .modelContainer(services.container) .task { await services.bootstrap() } } }