BolusCalculatorStateModel.swift 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import SwiftUI
  2. extension BolusCalculatorConfig {
  3. final class StateModel: BaseStateModel<Provider> {
  4. @Published var overrideFactor: Decimal = 0
  5. @Published var fattyMeals: Bool = false
  6. @Published var fattyMealFactor: Decimal = 0
  7. @Published var sweetMeals: Bool = false
  8. @Published var sweetMealFactor: Decimal = 0
  9. @Published var displayPresets: Bool = true
  10. override func subscribe() {
  11. subscribeSetting(\.overrideFactor, on: $overrideFactor, initial: {
  12. let value = max(min($0, 1.2), 0.1)
  13. overrideFactor = value
  14. }, map: {
  15. $0
  16. })
  17. subscribeSetting(\.fattyMeals, on: $fattyMeals) { fattyMeals = $0 }
  18. subscribeSetting(\.displayPresets, on: $displayPresets) { displayPresets = $0 }
  19. subscribeSetting(\.fattyMealFactor, on: $fattyMealFactor, initial: {
  20. let value = max(min($0, 1.2), 0.1)
  21. fattyMealFactor = value
  22. }, map: {
  23. $0
  24. })
  25. subscribeSetting(\.sweetMeals, on: $sweetMeals) { sweetMeals = $0 }
  26. subscribeSetting(\.sweetMealFactor, on: $sweetMealFactor, initial: {
  27. let value = max(min($0, 5), 1)
  28. sweetMealFactor = value
  29. }, map: {
  30. $0
  31. })
  32. }
  33. }
  34. }