fix menu
This commit is contained in:
parent
5ec207e1fa
commit
f9b1c03b85
@ -20,22 +20,12 @@ class SettingsState {
|
|||||||
var name: String
|
var name: String
|
||||||
}
|
}
|
||||||
|
|
||||||
enum MenuItem: String, CaseIterable {
|
|
||||||
case accout = "账号"
|
|
||||||
case network = "网络"
|
|
||||||
case device = "设备"
|
|
||||||
case system = "软件"
|
|
||||||
case about = "关于"
|
|
||||||
}
|
|
||||||
|
|
||||||
var networks: [Network]
|
var networks: [Network]
|
||||||
var selectedNetwork: Network
|
var selectedNetwork: Network
|
||||||
|
|
||||||
var exitNodes: [ExitNode]
|
var exitNodes: [ExitNode]
|
||||||
var selectedExitNode: ExitNode
|
var selectedExitNode: ExitNode
|
||||||
|
|
||||||
var currentMeun: MenuItem = .accout
|
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
let networks: [Network] = [
|
let networks: [Network] = [
|
||||||
.init(id: 1, name: "测试网络12"),
|
.init(id: 1, name: "测试网络12"),
|
||||||
|
|||||||
@ -10,14 +10,23 @@ import SwiftUI
|
|||||||
struct SettingsView: View {
|
struct SettingsView: View {
|
||||||
@State private var state = SettingsState()
|
@State private var state = SettingsState()
|
||||||
@State private var hovering = false
|
@State private var hovering = false
|
||||||
|
@State private var selectedMenu: MenuItem = .accout
|
||||||
|
|
||||||
|
enum MenuItem: String, CaseIterable {
|
||||||
|
case accout = "账号"
|
||||||
|
case network = "网络"
|
||||||
|
case device = "设备"
|
||||||
|
case system = "软件"
|
||||||
|
case about = "关于"
|
||||||
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
NavigationSplitView {
|
NavigationSplitView {
|
||||||
List(SettingsState.MenuItem.allCases, id: \.self) { menu in
|
List(MenuItem.allCases, id: \.self) { menu in
|
||||||
HStack(alignment: .center) {
|
HStack(alignment: .center) {
|
||||||
Rectangle()
|
Rectangle()
|
||||||
.frame(width: 3, height: 25)
|
.frame(width: 3, height: 25)
|
||||||
.foregroundColor(self.state.currentMeun == menu ? .black : .clear)
|
.foregroundColor(self.selectedMenu == menu ? .black : .clear)
|
||||||
|
|
||||||
Text(menu.rawValue)
|
Text(menu.rawValue)
|
||||||
|
|
||||||
@ -25,7 +34,7 @@ struct SettingsView: View {
|
|||||||
}
|
}
|
||||||
.contentShape(Rectangle())
|
.contentShape(Rectangle())
|
||||||
.onTapGesture {
|
.onTapGesture {
|
||||||
self.state.currentMeun = menu
|
self.selectedMenu = menu
|
||||||
}
|
}
|
||||||
.onHover { inside in
|
.onHover { inside in
|
||||||
hovering = inside
|
hovering = inside
|
||||||
@ -41,7 +50,7 @@ struct SettingsView: View {
|
|||||||
|
|
||||||
} detail: {
|
} detail: {
|
||||||
VStack(alignment: .leading, spacing: 0) {
|
VStack(alignment: .leading, spacing: 0) {
|
||||||
switch self.state.currentMeun {
|
switch self.selectedMenu {
|
||||||
case .accout:
|
case .accout:
|
||||||
SettingsAccountView(state: self.state)
|
SettingsAccountView(state: self.state)
|
||||||
case .network:
|
case .network:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user