AlarmStepperSection.swift 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //
  2. // AlarmStepperSection.swift
  3. // LoopFollow
  4. //
  5. // Created by Jonas Björkert on 2025-05-10.
  6. // Copyright © 2025 Jon Fawcett. All rights reserved.
  7. //
  8. import SwiftUI
  9. struct AlarmStepperSection: View {
  10. let header: String?
  11. let footer: String?
  12. let title: String
  13. let range: ClosedRange<Double>
  14. let step: Double
  15. let unitLabel: String?
  16. @Binding var value: Double
  17. init(
  18. header: String? = nil,
  19. footer: String? = nil,
  20. title: String,
  21. range: ClosedRange<Double>,
  22. step: Double,
  23. unitLabel: String? = nil,
  24. value: Binding<Double>
  25. ) {
  26. self.header = header
  27. self.footer = footer
  28. self.title = title
  29. self.range = range
  30. self.step = step
  31. self.unitLabel = unitLabel
  32. self._value = value
  33. }
  34. var body: some View {
  35. Section(
  36. header: header.map(Text.init),
  37. footer: footer.map(Text.init)
  38. ) {
  39. Stepper(
  40. "\(title): \(Int(value))\(unitLabel.map { " \($0)" } ?? "")",
  41. value: $value,
  42. in: range,
  43. step: step
  44. )
  45. }
  46. }
  47. }