InfoDisplaySettingsView.swift 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // LoopFollow
  2. // InfoDisplaySettingsView.swift
  3. // Created by Jonas Björkert.
  4. import SwiftUI
  5. struct InfoDisplaySettingsView: View {
  6. @ObservedObject var viewModel: InfoDisplaySettingsViewModel
  7. var body: some View {
  8. NavigationView {
  9. Form {
  10. Section(header: Text("General")) {
  11. Toggle(isOn: Binding(
  12. get: { Storage.shared.hideInfoTable.value },
  13. set: { Storage.shared.hideInfoTable.value = $0 }
  14. )) {
  15. Text("Hide Information Table")
  16. }
  17. }
  18. Section(header: Text("Information Display Settings")) {
  19. List {
  20. ForEach(viewModel.infoSort, id: \.self) { sortedIndex in
  21. HStack {
  22. Text(viewModel.getName(for: sortedIndex))
  23. Spacer()
  24. Toggle("", isOn: Binding(
  25. get: { viewModel.infoVisible[sortedIndex] },
  26. set: { _ in
  27. viewModel.toggleVisibility(for: sortedIndex)
  28. }
  29. ))
  30. .labelsHidden()
  31. }
  32. }
  33. .onMove(perform: viewModel.move)
  34. }
  35. .environment(\.editMode, .constant(.active))
  36. }
  37. }
  38. .onDisappear {
  39. NotificationCenter.default.post(name: NSNotification.Name("refresh"), object: nil)
  40. }
  41. }
  42. .preferredColorScheme(Storage.shared.forceDarkMode.value ? .dark : nil)
  43. .navigationBarTitle("Information Display Settings", displayMode: .inline)
  44. }
  45. }