TemporaryAlarmEditor.swift 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // LoopFollow
  2. // TemporaryAlarmEditor.swift
  3. import SwiftUI
  4. struct TemporaryAlarmEditor: View {
  5. @Binding var alarm: Alarm
  6. // Shared BG range
  7. private let bgRange: ClosedRange<Double> = 40 ... 300
  8. var body: some View {
  9. Group {
  10. InfoBanner(
  11. text: String(localized: "This alert fires once when glucose crosses either of the limits you set below, and then disables itself."),
  12. alarmType: alarm.type
  13. )
  14. AlarmGeneralSection(alarm: $alarm)
  15. AlarmBGLimitSection(
  16. header: String(localized: "Low Limit"),
  17. footer: String(localized: "Alert if BG is equal to or below this value."),
  18. toggleText: String(localized: "Enable low limit"),
  19. pickerTitle: String(localized: "Below"),
  20. range: bgRange,
  21. value: $alarm.belowBG
  22. )
  23. AlarmBGLimitSection(
  24. header: String(localized: "High Limit"),
  25. footer: String(localized: "Alert if BG is equal to or above this value."),
  26. toggleText: String(localized: "Enable high limit"),
  27. pickerTitle: String(localized: "Above"),
  28. range: bgRange,
  29. value: $alarm.aboveBG
  30. )
  31. if alarm.belowBG == nil && alarm.aboveBG == nil {
  32. Text("⚠️ Please enable at least one limit.")
  33. .foregroundColor(.red)
  34. }
  35. AlarmActiveSection(alarm: $alarm)
  36. AlarmAudioSection(alarm: $alarm)
  37. }
  38. }
  39. }