TIRViewModel.swift 900 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // LoopFollow
  2. // TIRViewModel.swift
  3. import Combine
  4. import Foundation
  5. class TIRViewModel: ObservableObject {
  6. @Published var tirData: [TIRDataPoint] = []
  7. private let dataService: StatsDataService
  8. init(dataService: StatsDataService) {
  9. self.dataService = dataService
  10. calculateTIR()
  11. }
  12. func calculateTIR() {
  13. let bgData = dataService.getBGData()
  14. tirData = TIRCalculator.calculate(bgData: bgData)
  15. }
  16. func toggleTIRMode() {
  17. let mode = UnitSettingsStore.shared.timeInRangeMode
  18. switch mode {
  19. case .tir:
  20. UnitSettingsStore.shared.timeInRangeMode = .titr
  21. case .titr:
  22. UnitSettingsStore.shared.timeInRangeMode = .custom
  23. case .custom:
  24. UnitSettingsStore.shared.timeInRangeMode = .tir
  25. }
  26. calculateTIR()
  27. }
  28. func clearStats() {
  29. tirData = []
  30. }
  31. }