AddCarbsViewModel.swift 971 B

1234567891011121314151617181920212223242526272829303132
  1. import SwiftUI
  2. extension AddCarbs {
  3. class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: AddCarbsProvider {
  4. @Injected() var carbsStorage: CarbsStorage!
  5. @Injected() var settingsManager: SettingsManager!
  6. @Injected() var apsManager: APSManager!
  7. @Published var carbs: Decimal = 0
  8. @Published var date = Date()
  9. override func subscribe() {}
  10. func add() {
  11. guard carbs > 0 else {
  12. showModal(for: nil)
  13. return
  14. }
  15. carbsStorage.storeCarbs([
  16. CarbsEntry(createdAt: date, carbs: carbs, enteredBy: CarbsEntry.manual)
  17. ])
  18. if settingsManager.settings.skipBolusScreenAfterCarbs ?? false {
  19. apsManager.determineBasalSync()
  20. showModal(for: nil)
  21. } else {
  22. showModal(for: .bolus(waitForDuggestion: true))
  23. }
  24. }
  25. }
  26. }