AddCarbsStateModel.swift 965 B

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