AlarmStepperSection.swift 1.2 KB

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