AddCarbsViewModel.swift 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  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. @Published var carbsRequired: Decimal?
  10. override func subscribe() {
  11. carbsRequired = provider.suggestion?.carbsReq
  12. }
  13. func add() {
  14. guard carbs > 0 else {
  15. showModal(for: nil)
  16. return
  17. }
  18. carbsStorage.storeCarbs([
  19. CarbsEntry(createdAt: date, carbs: carbs, enteredBy: CarbsEntry.manual)
  20. ])
  21. if settingsManager.settings.skipBolusScreenAfterCarbs ?? false {
  22. apsManager.determineBasalSync()
  23. showModal(for: nil)
  24. } else {
  25. showModal(for: .bolus(waitForDuggestion: true))
  26. }
  27. }
  28. }
  29. }