import SwiftUI struct SettingsView: View { @State private var selectedTab: SettingsTab = .general var body: some View { NavigationSplitView { List(SettingsTab.allCases, selection: $selectedTab) { tab in Label(tab.label, systemImage: tab.icon) .tag(tab) .accessibilityIdentifier("settings.tab.\(tab.rawValue)") } .listStyle(.sidebar) .navigationSplitViewColumnWidth(min: 180, ideal: 200) } detail: { ScrollView { detailView.padding() } .frame(maxWidth: .infinity, maxHeight: .infinity) } .frame(minWidth: 600, minHeight: 400) } @ViewBuilder private var detailView: some View { switch selectedTab { case .general: GeneralSettingsView() case .appearance: AppearanceSettingsView() case .workspaces: WorkspacesSettingsView() case .animation: AnimationSettingsView() case .terminal: TerminalSettingsView() case .hotkeys: HotkeySettingsView() case .about: AboutSettingsView() } } } enum SettingsTab: String, CaseIterable, Identifiable { case general, appearance, workspaces, animation, terminal, hotkeys, about var id: String { rawValue } var label: String { switch self { case .general: "General" case .appearance: "Appearance" case .workspaces: "Workspaces" case .animation: "Animation" case .terminal: "Terminal" case .hotkeys: "Hotkeys" case .about: "About" } } var icon: String { switch self { case .general: "gearshape" case .appearance: "paintbrush" case .workspaces: "rectangle.3.group" case .animation: "bolt.fill" case .terminal: "terminal" case .hotkeys: "keyboard" case .about: "info.circle" } } }