// // DemoMode.swift // SportsTime // // Environment key and configuration for automated demo mode. // When enabled, UI elements auto-select as they scroll into view. // import SwiftUI // MARK: - Demo Mode Environment Key private struct DemoModeKey: EnvironmentKey { static let defaultValue = false } extension EnvironmentValues { var isDemoMode: Bool { get { self[DemoModeKey.self] } set { self[DemoModeKey.self] = newValue } } } // MARK: - Demo Mode Configuration /// Configuration for the demo flow enum DemoConfig { /// Delay before auto-selecting an item (seconds) static let selectionDelay: Double = 0.5 /// Demo mode date selections static let demoStartDate: Date = { var components = DateComponents() components.year = 2026 components.month = 6 components.day = 11 return Calendar.current.date(from: components) ?? Date() }() static let demoEndDate: Date = { var components = DateComponents() components.year = 2026 components.month = 6 components.day = 16 return Calendar.current.date(from: components) ?? Date() }() /// Demo mode planning mode selection static let demoPlanningMode: PlanningMode = .dateRange /// Demo mode sport selection static let demoSport: Sport = .mlb /// Demo mode region selection static let demoRegion: Region = .central /// Demo mode sort option static let demoSortOption: TripSortOption = .mostGames /// Demo mode trip index to select (0-indexed) static let demoTripIndex: Int = 3 } // MARK: - Demo Mode Launch Argument extension ProcessInfo { /// Check if app was launched in demo mode static var isDemoMode: Bool { ProcessInfo.processInfo.arguments.contains("-DemoMode") } }