| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- //
- // CorrectionRangeScheduleEditorViewModel.swift
- // LoopKitUI
- //
- // Created by Nathaniel Hamming on 2021-03-19.
- // Copyright © 2021 LoopKit Authors. All rights reserved.
- //
- import Foundation
- import HealthKit
- import LoopKit
- struct CorrectionRangeScheduleEditorViewModel {
- let guardrail = Guardrail.correctionRange
- let glucoseTargetRangeSchedule: GlucoseRangeSchedule?
- let minValue: HKQuantity?
- var saveGlucoseTargetRangeSchedule: (_ glucoseTargetRangeSchedule: GlucoseRangeSchedule) -> Void
- init(
- mode: SettingsPresentationMode,
- therapySettingsViewModel: TherapySettingsViewModel,
- didSave: (() -> Void)? = nil
- ) {
- if mode == .acceptanceFlow {
- self.glucoseTargetRangeSchedule = therapySettingsViewModel.glucoseTargetRangeSchedule?.safeSchedule(with: therapySettingsViewModel.suspendThreshold?.quantity)
- }
- else {
- self.glucoseTargetRangeSchedule = therapySettingsViewModel.glucoseTargetRangeSchedule
- }
- self.minValue = Guardrail.minCorrectionRangeValue(suspendThreshold: therapySettingsViewModel.suspendThreshold)
- self.saveGlucoseTargetRangeSchedule = { [weak therapySettingsViewModel] glucoseTargetRangeSchedule in
- guard let therapySettingsViewModel = therapySettingsViewModel else {
- return
- }
- therapySettingsViewModel.saveCorrectionRange(range: glucoseTargetRangeSchedule)
- didSave?()
- }
- }
- }
|