PreferencesEditorRootView.swift 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. }
  18. Section(header: Text("OpenAPS")) {
  19. Picker(selection: $viewModel.insulinCirveField.value, label: Text(viewModel.insulinCirveField.displayName)) {
  20. ForEach(InsulinCurve.allCases) { v in
  21. Text(v.rawValue).tag(v)
  22. }
  23. }
  24. ForEach(viewModel.boolFields.indexed(), id: \.1.id) { index, field in
  25. Toggle(field.displayName, isOn: self.$viewModel.boolFields[index].value)
  26. }
  27. ForEach(viewModel.decimalFields.indexed(), id: \.1.id) { index, field in
  28. HStack {
  29. Text(field.displayName)
  30. DecimalTextField("0", value: self.$viewModel.decimalFields[index].value, formatter: formatter)
  31. }
  32. }
  33. }
  34. }
  35. .navigationTitle("Preferences")
  36. .navigationBarTitleDisplayMode(.automatic)
  37. .navigationBarItems(leading: Button("Close", action: viewModel.hideModal))
  38. }
  39. }
  40. }