diff --git a/cue-ios/CueIOS/Views/ContentView.swift b/cue-ios/CueIOS/Views/ContentView.swift index 298cb9d..41c9996 100644 --- a/cue-ios/CueIOS/Views/ContentView.swift +++ b/cue-ios/CueIOS/Views/ContentView.swift @@ -30,22 +30,16 @@ struct ContentView: View { } private var sidebar: some View { - List(selection: $state.tab) { + List { Section("Measurements") { - Label("EIS", systemImage: "waveform.path.ecg") - .tag(Tab.eis) - Label("LSV", systemImage: "chart.xyaxis.line") - .tag(Tab.lsv) - Label("Amperometry", systemImage: "bolt.fill") - .tag(Tab.amp) - Label("Chlorine", systemImage: "drop.fill") - .tag(Tab.chlorine) - Label("pH", systemImage: "scalemass") - .tag(Tab.ph) + sidebarButton(.eis, "EIS", "waveform.path.ecg") + sidebarButton(.lsv, "LSV", "chart.xyaxis.line") + sidebarButton(.amp, "Amperometry", "bolt.fill") + sidebarButton(.chlorine, "Chlorine", "drop.fill") + sidebarButton(.ph, "pH", "scalemass") } Section("Data") { - Label("Sessions", systemImage: "folder") - .tag(Tab.sessions) + sidebarButton(.sessions, "Sessions", "folder") } Section { cleanControls @@ -55,6 +49,15 @@ struct ContentView: View { .listStyle(.sidebar) } + private func sidebarButton(_ tab: Tab, _ title: String, _ icon: String) -> some View { + Button { + state.tab = tab + } label: { + Label(title, systemImage: icon) + } + .listRowBackground(state.tab == tab ? Color.accentColor.opacity(0.2) : nil) + } + private var cleanControls: some View { VStack(alignment: .leading, spacing: 6) { Text("Electrode Clean")