From 720b7e5158bd3de7cabe4839d8577f36ef776d23 Mon Sep 17 00:00:00 2001 From: mrFq1 <1xxbx0il0@mozmail.com> Date: Tue, 20 Jun 2023 23:06:42 +0800 Subject: [PATCH] misc: SidebarLabel --- .../Views/SidebarView/SidebarLabel.swift | 26 +++++++++++++++++++ .../Views/SidebarView/SidebarListView.swift | 16 +++++++----- 2 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 Sources/ClashX Dashboard/Views/SidebarView/SidebarLabel.swift diff --git a/Sources/ClashX Dashboard/Views/SidebarView/SidebarLabel.swift b/Sources/ClashX Dashboard/Views/SidebarView/SidebarLabel.swift new file mode 100644 index 0000000..7ded9d2 --- /dev/null +++ b/Sources/ClashX Dashboard/Views/SidebarView/SidebarLabel.swift @@ -0,0 +1,26 @@ +// +// SwiftUIView.swift +// +// +// + +import SwiftUI + +struct SidebarLabel: View { + @State var item: SidebarItem + @State var iconName: String + + var body: some View { + HStack { + Image(systemName: iconName) + .foregroundColor(.accentColor) + Text(item.rawValue) + } + } +} + +struct SidebarLabel_Previews: PreviewProvider { + static var previews: some View { + SidebarLabel(item: .overview, iconName: "chart.bar.xaxis") + } +} diff --git a/Sources/ClashX Dashboard/Views/SidebarView/SidebarListView.swift b/Sources/ClashX Dashboard/Views/SidebarView/SidebarListView.swift index e19e4c0..48bee37 100644 --- a/Sources/ClashX Dashboard/Views/SidebarView/SidebarListView.swift +++ b/Sources/ClashX Dashboard/Views/SidebarView/SidebarListView.swift @@ -19,47 +19,49 @@ struct SidebarListView: View { NavigationLink(destination: OverviewView(), tag: SidebarItem.overview, selection: $selectionName) { - Label(SidebarItem.overview.rawValue, systemImage: "chart.bar.xaxis") + SidebarLabel(item: .overview, iconName: "chart.bar.xaxis") } NavigationLink(destination: ProxiesView(), tag: SidebarItem.proxies, selection: $selectionName) { - Label(SidebarItem.proxies.rawValue, systemImage: "globe.asia.australia") + SidebarLabel(item: .proxies, iconName: "globe.asia.australia") } NavigationLink(destination: ProvidersView(), tag: SidebarItem.providers, selection: $selectionName) { - Label(SidebarItem.providers.rawValue, systemImage: "link.icloud") + SidebarLabel(item: .providers, iconName: "link.icloud") } NavigationLink(destination: RulesView(), tag: SidebarItem.rules, selection: $selectionName) { - Label(SidebarItem.rules.rawValue, systemImage: "waveform.and.magnifyingglass") + SidebarLabel(item: .rules, iconName: "waveform.and.magnifyingglass") } NavigationLink(destination: ConnectionsView(), tag: SidebarItem.conns, selection: $selectionName) { - Label(SidebarItem.conns.rawValue, systemImage: "app.connected.to.app.below.fill") + SidebarLabel(item: .conns, iconName: "app.connected.to.app.below.fill") } NavigationLink(destination: ConfigView(), tag: SidebarItem.config, selection: $selectionName) { - Label(SidebarItem.config.rawValue, systemImage: "slider.horizontal.3") + SidebarLabel(item: .config, iconName: "slider.horizontal.3") } NavigationLink(destination: LogsView(), tag: SidebarItem.logs, selection: $selectionName) { - Label(SidebarItem.logs.rawValue, systemImage: "wand.and.stars.inverse") + SidebarLabel(item: .logs, iconName: "wand.and.stars.inverse") } } .introspectTableView { + $0.refusesFirstResponder = true + if selectionName == nil { selectionName = SidebarItem.overview $0.allowsEmptySelection = false