misc: SidebarLabel

This commit is contained in:
mrFq1
2023-06-20 23:06:42 +08:00
parent 87267f8e94
commit 720b7e5158
2 changed files with 35 additions and 7 deletions

View File

@@ -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")
}
}

View File

@@ -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