PumpConfigRootView.swift 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. Form {
  9. Section(header: Text("Model")) {
  10. if let pumpState = state.pumpState {
  11. Button {
  12. state.setupPump = true
  13. } label: {
  14. HStack {
  15. Image(uiImage: pumpState.image ?? UIImage()).padding()
  16. Text(pumpState.name)
  17. }
  18. }
  19. } else {
  20. Button("Add Medtronic") { state.addPump(.minimed) }
  21. Button("Add Omnipod") { state.addPump(.omnipod) }
  22. Button("Add Simulator") { state.addPump(.simulator) }
  23. }
  24. }
  25. }
  26. .onAppear(perform: configureView)
  27. .navigationTitle("Pump config")
  28. .navigationBarTitleDisplayMode(.automatic)
  29. .sheet(isPresented: $state.setupPump) {
  30. if let pumpManager = state.provider.apsManager.pumpManager {
  31. PumpSettingsView(pumpManager: pumpManager, completionDelegate: state)
  32. } else {
  33. PumpSetupView(
  34. pumpType: state.setupPumpType,
  35. pumpInitialSettings: state.initialSettings,
  36. completionDelegate: state,
  37. setupDelegate: state
  38. )
  39. }
  40. }
  41. }
  42. }
  43. }