CGMViewModel.swift 814 B

123456789101112131415161718192021222324252627
  1. import SwiftUI
  2. extension CGM {
  3. class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: CGMProvider {
  4. @Injected() var settingsManager: SettingsManager!
  5. @Published var cgm: CGMType = .nightscout
  6. @Published var transmitterID: String = ""
  7. override func subscribe() {
  8. cgm = settingsManager.settings.cgm ?? .nightscout
  9. transmitterID = UserDefaults.standard.dexcomTransmitterID ?? ""
  10. $cgm
  11. .removeDuplicates()
  12. .sink { [weak self] value in
  13. self?.settingsManager.settings.cgm = value
  14. }
  15. .store(in: &lifetime)
  16. }
  17. func onChangeID() {
  18. UserDefaults.standard.dexcomTransmitterID = transmitterID
  19. }
  20. }
  21. }