AlarmStepperSection.swift 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. _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(value: $value, in: range, step: step) {
  40. HStack {
  41. Text(title)
  42. Spacer()
  43. Text("\(Int(value))\(unitLabel.map { " \($0)" } ?? "")")
  44. .foregroundColor(.secondary)
  45. }
  46. }
  47. }
  48. }
  49. }