PreferencesEditorRootView.swift 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import SwiftUI
  2. extension PreferencesEditor {
  3. struct RootView: BaseView {
  4. @EnvironmentObject var viewModel: ViewModel<Provider>
  5. private var formatter: NumberFormatter {
  6. let formatter = NumberFormatter()
  7. formatter.numberStyle = .decimal
  8. return formatter
  9. }
  10. var body: some View {
  11. Form {
  12. Section(header: Text("FreeAPS X")) {
  13. Picker("Glucose units", selection: $viewModel.unitsIndex) {
  14. Text("mg/dL").tag(0)
  15. Text("mmol/L").tag(1)
  16. }
  17. Toggle("Remote control", isOn: $viewModel.allowAnnouncements)
  18. }
  19. Section(header: Text("OpenAPS")) {
  20. Picker(selection: $viewModel.insulinCirveField.value, label: Text(viewModel.insulinCirveField.displayName)) {
  21. ForEach(InsulinCurve.allCases) { v in
  22. Text(v.rawValue).tag(v)
  23. }
  24. }
  25. ForEach(viewModel.boolFields.indexed(), id: \.1.id) { index, field in
  26. Toggle(field.displayName, isOn: self.$viewModel.boolFields[index].value)
  27. }
  28. ForEach(viewModel.decimalFields.indexed(), id: \.1.id) { index, field in
  29. HStack {
  30. Text(field.displayName)
  31. DecimalTextField("0", value: self.$viewModel.decimalFields[index].value, formatter: formatter)
  32. }
  33. }
  34. }
  35. }
  36. .navigationTitle("Preferences")
  37. .navigationBarTitleDisplayMode(.automatic)
  38. }
  39. }
  40. }