| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import SwiftUI
- import Swinject
- enum Screen: Identifiable, Hashable {
- case loading
- case home
- case settings
- case configEditor(file: String)
- case nighscoutConfig
- case pumpConfig
- case pumpSettingsEditor
- case basalProfileEditor
- case isfEditor
- case crEditor
- case targetsEditor
- case preferencesEditor
- case addCarbs
- case addTempTarget
- case bolus(waitForSuggestion: Bool)
- case manualTempBasal
- case autotuneConfig
- case dataTable
- case cgm
- case healthkit
- case libreConfig
- case calibrations
- case notificationsConfig
- case fpuConfig
- case iconConfig
- case overrideProfilesConfig
- case snooze
- var id: Int { String(reflecting: self).hashValue }
- }
- extension Screen {
- @ViewBuilder func view(resolver: Resolver) -> some View {
- switch self {
- case .loading:
- ProgressView()
- case .home:
- Home.RootView(
- resolver: resolver,
- selectedState: .day
- )
- case .settings:
- Settings.RootView(resolver: resolver)
- case let .configEditor(file):
- ConfigEditor.RootView(resolver: resolver, file: file)
- case .nighscoutConfig:
- NightscoutConfig.RootView(resolver: resolver)
- case .pumpConfig:
- PumpConfig.RootView(resolver: resolver)
- case .pumpSettingsEditor:
- PumpSettingsEditor.RootView(resolver: resolver)
- case .basalProfileEditor:
- BasalProfileEditor.RootView(resolver: resolver)
- case .isfEditor:
- ISFEditor.RootView(resolver: resolver)
- case .crEditor:
- CREditor.RootView(resolver: resolver)
- case .targetsEditor:
- TargetsEditor.RootView(resolver: resolver)
- case .preferencesEditor:
- PreferencesEditor.RootView(resolver: resolver)
- case .addCarbs:
- AddCarbs.RootView(resolver: resolver)
- case .addTempTarget:
- AddTempTarget.RootView(resolver: resolver)
- case let .bolus(waitForSuggestion):
- Bolus.RootView(resolver: resolver, waitForSuggestion: waitForSuggestion)
- case .manualTempBasal:
- ManualTempBasal.RootView(resolver: resolver)
- case .autotuneConfig:
- AutotuneConfig.RootView(resolver: resolver)
- case .dataTable:
- DataTable.RootView(resolver: resolver)
- case .cgm:
- CGM.RootView(resolver: resolver)
- case .healthkit:
- AppleHealthKit.RootView(resolver: resolver)
- case .libreConfig:
- LibreConfig.RootView(resolver: resolver)
- case .calibrations:
- Calibrations.RootView(resolver: resolver)
- case .notificationsConfig:
- NotificationsConfig.RootView(resolver: resolver)
- case .fpuConfig:
- FPUConfig.RootView(resolver: resolver)
- case .iconConfig:
- IconConfig.RootView(resolver: resolver)
- case .overrideProfilesConfig:
- OverrideProfilesConfig.RootView(resolver: resolver)
- case .snooze:
- Snooze.RootView(resolver: resolver)
- }
- }
- func modal(resolver: Resolver) -> Main.Modal {
- .init(screen: self, view: view(resolver: resolver).asAny())
- }
- }
|