ManualTempBasalStateModel.swift 816 B

123456789101112131415161718192021222324252627282930
  1. import Observation
  2. import SwiftUI
  3. extension ManualTempBasal {
  4. @Observable final class StateModel: BaseStateModel<Provider> {
  5. @ObservationIgnored @Injected() var apsManager: APSManager!
  6. var rate: Decimal = 0
  7. var durationIndex = 0
  8. let durationValues = stride(from: 30.0, to: 720.1, by: 30.0).map { $0 }
  9. override func subscribe() {}
  10. func cancel() {
  11. Task {
  12. await apsManager.enactTempBasal(rate: 0, duration: 0)
  13. showModal(for: nil)
  14. }
  15. }
  16. func enact() {
  17. Task {
  18. let duration = durationValues[durationIndex]
  19. await apsManager.enactTempBasal(rate: Double(rate), duration: duration * 60)
  20. showModal(for: nil)
  21. }
  22. }
  23. }
  24. }