import SwiftUI extension StatConfig { final class StateModel: BaseStateModel { @Published var overrideHbA1cUnit = false @Published var low: Decimal = 4 / 0.0555 @Published var high: Decimal = 10 / 0.0555 @Published var uploadStats = false var units: GlucoseUnits = .mmolL override func subscribe() { let units = settingsManager.settings.units self.units = units subscribeSetting(\.overrideHbA1cUnit, on: $overrideHbA1cUnit) { overrideHbA1cUnit = $0 } subscribeSetting(\.uploadStats, on: $uploadStats) { uploadStats = $0 } subscribeSetting(\.low, on: $low, initial: { let value = max(min($0, 120), 40) low = units == .mmolL ? value.asMmolL : value }, map: { guard units == .mmolL else { return $0 } return $0.asMgdL }) subscribeSetting(\.high, on: $high, initial: { let value = max(min($0, 270), 130) high = units == .mmolL ? value.asMmolL : value }, map: { guard units == .mmolL else { return $0 } return $0.asMgdL }) } } }