PumpConfigViewModel.swift 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import LoopKitUI
  2. import SwiftUI
  3. extension PumpConfig {
  4. class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: PumpConfigProvider {
  5. @Published var setupPump = false
  6. private(set) var setupPumpType: PumpType = .minimed
  7. @Published var pumpState: PumpDisplayState?
  8. override func subscribe() {
  9. provider.pumpDisplayState
  10. .receive(on: DispatchQueue.main)
  11. .assign(to: \.pumpState, on: self)
  12. .store(in: &lifetime)
  13. }
  14. func addPump(_ type: PumpType) {
  15. setupPump = true
  16. setupPumpType = type
  17. }
  18. }
  19. }
  20. extension PumpConfig.ViewModel: CompletionDelegate {
  21. func completionNotifyingDidComplete(_: CompletionNotifying) {
  22. setupPump = false
  23. }
  24. }
  25. extension PumpConfig.ViewModel: PumpManagerSetupViewControllerDelegate {
  26. func pumpManagerSetupViewController(_: PumpManagerSetupViewController, didSetUpPumpManager pumpManager: PumpManagerUI) {
  27. provider.setPumpManager(pumpManager)
  28. setupPump = false
  29. }
  30. }