PumpConfigRootView.swift 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import SwiftUI
  2. import Swinject
  3. extension PumpConfig {
  4. struct RootView: BaseView {
  5. let resolver: Resolver
  6. @StateObject var state = StateModel()
  7. var body: some View {
  8. NavigationView {
  9. Form {
  10. Section(header: Text("Model")) {
  11. if let pumpState = state.pumpState {
  12. Button {
  13. state.setupPump = true
  14. } label: {
  15. HStack {
  16. Image(uiImage: pumpState.image ?? UIImage()).padding()
  17. Text(pumpState.name)
  18. }
  19. }
  20. } else {
  21. Button("Add Medtronic") { state.addPump(.minimed) }
  22. Button("Add Omnipod") { state.addPump(.omnipod) }
  23. Button("Add Omnipod Dash") { state.addPump(.omnipodBLE) }
  24. Button("Add Simulator") { state.addPump(.simulator) }
  25. }
  26. }
  27. }
  28. .onAppear(perform: configureView)
  29. .navigationTitle("Pump config")
  30. .navigationBarTitleDisplayMode(.automatic)
  31. .sheet(isPresented: $state.setupPump) {
  32. if let pumpManager = state.provider.apsManager.pumpManager {
  33. PumpSettingsView(
  34. pumpManager: pumpManager,
  35. bluetoothManager: state.provider.apsManager.bluetoothManager!,
  36. completionDelegate: state
  37. )
  38. } else {
  39. PumpSetupView(
  40. pumpType: state.setupPumpType,
  41. pumpInitialSettings: state.initialSettings,
  42. bluetoothManager: state.provider.apsManager.bluetoothManager!,
  43. completionDelegate: state,
  44. setupDelegate: state
  45. )
  46. }
  47. }
  48. }
  49. }
  50. }
  51. }