Screen.swift 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. import SwiftUI
  2. import Swinject
  3. enum Screen: Identifiable, Hashable {
  4. case loading
  5. case home
  6. case settings
  7. case configEditor(file: String)
  8. case nighscoutConfig
  9. case nighscoutConfigDirect
  10. case pumpConfig
  11. case pumpConfigDirect
  12. case pumpSettingsEditor
  13. case basalProfileEditor
  14. case isfEditor
  15. case crEditor
  16. case targetsEditor
  17. case preferencesEditor
  18. case addTempTarget
  19. case bolus
  20. case manualTempBasal
  21. case autotuneConfig
  22. case dataTable
  23. case cgm
  24. case cgmDirect
  25. case healthkit
  26. case notificationsConfig
  27. case fpuConfig
  28. case iconConfig
  29. case overrideProfilesConfig
  30. case snooze
  31. case statistics
  32. case watch
  33. case statisticsConfig
  34. <<<<<<< HEAD
  35. case bolusCalculatorConfig
  36. case dynamicISF
  37. =======
  38. case calibrations
  39. >>>>>>> 9672da256c317a314acc76d6e4f6e82cc174d133
  40. var id: Int { String(reflecting: self).hashValue }
  41. }
  42. extension Screen {
  43. @ViewBuilder func view(resolver: Resolver) -> some View {
  44. switch self {
  45. case .loading:
  46. ProgressView()
  47. case .home:
  48. Home.RootView(resolver: resolver)
  49. case .settings:
  50. Settings.RootView(resolver: resolver)
  51. case let .configEditor(file):
  52. ConfigEditor.RootView(resolver: resolver, file: file)
  53. case .nighscoutConfig:
  54. NightscoutConfig.RootView(resolver: resolver, displayClose: false)
  55. case .nighscoutConfigDirect:
  56. NightscoutConfig.RootView(resolver: resolver, displayClose: true)
  57. case .pumpConfig:
  58. PumpConfig.RootView(resolver: resolver, displayClose: false)
  59. case .pumpConfigDirect:
  60. PumpConfig.RootView(resolver: resolver, displayClose: true)
  61. case .pumpSettingsEditor:
  62. PumpSettingsEditor.RootView(resolver: resolver)
  63. case .basalProfileEditor:
  64. BasalProfileEditor.RootView(resolver: resolver)
  65. case .isfEditor:
  66. ISFEditor.RootView(resolver: resolver)
  67. case .crEditor:
  68. CREditor.RootView(resolver: resolver)
  69. case .targetsEditor:
  70. TargetsEditor.RootView(resolver: resolver)
  71. case .preferencesEditor:
  72. PreferencesEditor.RootView(resolver: resolver)
  73. case .addTempTarget:
  74. AddTempTarget.RootView(resolver: resolver)
  75. case .bolus:
  76. Bolus.RootView(resolver: resolver)
  77. case .manualTempBasal:
  78. ManualTempBasal.RootView(resolver: resolver)
  79. case .autotuneConfig:
  80. AutotuneConfig.RootView(resolver: resolver)
  81. case .dataTable:
  82. DataTable.RootView(resolver: resolver)
  83. case .cgm:
  84. CGM.RootView(resolver: resolver, displayClose: false)
  85. case .cgmDirect:
  86. CGM.RootView(resolver: resolver, displayClose: true)
  87. case .healthkit:
  88. AppleHealthKit.RootView(resolver: resolver)
  89. case .notificationsConfig:
  90. NotificationsConfig.RootView(resolver: resolver)
  91. case .fpuConfig:
  92. FPUConfig.RootView(resolver: resolver)
  93. case .iconConfig:
  94. IconConfig.RootView(resolver: resolver)
  95. case .overrideProfilesConfig:
  96. OverrideProfilesConfig.RootView(resolver: resolver)
  97. case .snooze:
  98. Snooze.RootView(resolver: resolver)
  99. case .watch:
  100. WatchConfig.RootView(resolver: resolver)
  101. case .statistics:
  102. Stat.RootView(resolver: resolver)
  103. case .statisticsConfig:
  104. StatConfig.RootView(resolver: resolver)
  105. <<<<<<< HEAD
  106. case .bolusCalculatorConfig:
  107. BolusCalculatorConfig.RootView(resolver: resolver)
  108. case .dynamicISF:
  109. Dynamic.RootView(resolver: resolver)
  110. =======
  111. case .calibrations:
  112. Calibrations.RootView(resolver: resolver)
  113. >>>>>>> 9672da256c317a314acc76d6e4f6e82cc174d133
  114. }
  115. }
  116. func modal(resolver: Resolver) -> Main.Modal {
  117. .init(screen: self, view: view(resolver: resolver).asAny())
  118. }
  119. }