| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- //
- // AlarmBGSection.swift
- // LoopFollow
- //
- // Created by Jonas Björkert on 2025-05-06.
- // Copyright © 2025 Jon Fawcett. All rights reserved.
- //
- import SwiftUI
- import HealthKit
- struct AlarmBGSection: View {
- let header: String?
- let footer: String?
- let title: String
- let range: ClosedRange<Double>
- @Binding var value: Double
- private var unit: HKUnit { UserDefaultsRepository.getPreferredUnit() }
- private var displayValue: String {
- "\(Localizer.formatQuantity(value)) \(unit.localizedShortUnitString)"
- }
- private var allValues: [Double] {
- let step = unit == .millimolesPerLiter ? 18.0 * 0.1 : 1
- return Array(stride(from: range.lowerBound, through: range.upperBound, by: step))
- }
- var body: some View {
- Section(
- header: header.map(Text.init),
- footer: footer.map(Text.init)
- ) {
- Picker(
- selection: $value,
- label: HStack {
- Text(title)
- }
- ) {
- ForEach(allValues, id: \.self) { v in
- Text("\(Localizer.formatQuantity(v)) \(unit.localizedShortUnitString)")
- .tag(v)
- }
- }
- }
- }
- }
|