TIRViewModel.swift 785 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // LoopFollow
  2. // TIRViewModel.swift
  3. import Combine
  4. import Foundation
  5. class TIRViewModel: ObservableObject {
  6. @Published var tirData: [TIRDataPoint] = []
  7. @Published var showTITR: Bool {
  8. didSet {
  9. Storage.shared.showTITR.value = showTITR
  10. }
  11. }
  12. private let dataService: StatsDataService
  13. init(dataService: StatsDataService) {
  14. self.dataService = dataService
  15. showTITR = Storage.shared.showTITR.value
  16. calculateTIR()
  17. }
  18. func calculateTIR() {
  19. let bgData = dataService.getBGData()
  20. tirData = TIRCalculator.calculate(bgData: bgData, useTightRange: showTITR)
  21. }
  22. func toggleTIRMode() {
  23. showTITR.toggle()
  24. calculateTIR()
  25. }
  26. func clearStats() {
  27. tirData = []
  28. }
  29. }