






















@@ -8,7 +8,6 @@ struct SettingsRootView: View {
88@State private var monitoringPermissions = false
99@State private var selectedTab: SettingsTab = .general
1010@State private var cachedTabs: Set<SettingsTab>
11-@State private var sidebarVisible = true
1211@State private var snapshotPaths: (configPath: String?, stateDir: String?) = (nil, nil)
1312let updater: UpdaterProviding?
1413private let isPreview = ProcessInfo.processInfo.isPreview
@@ -24,36 +23,20 @@ struct SettingsRootView: View {
24232524var body: some View {
2625HStack(spacing: 0) {
27-if self.sidebarVisible {
28-SettingsSidebar(
29- groups: self.visibleGroups,
30- selectedTab: self.$selectedTab)
31-.frame(width: SettingsLayout.sidebarWidth)
32-.transition(.move(edge: .leading).combined(with: .opacity))
33-}
26+SettingsSidebar(
27+ groups: self.visibleGroups,
28+ selectedTab: self.$selectedTab)
29+.frame(width: SettingsLayout.sidebarWidth)
34303531self.detailContainer
3632}
3733.frame(width: SettingsTab.windowWidth, height: SettingsTab.windowHeight, alignment: .topLeading)
3834.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
3935.background(SettingsWindowChromeConfigurator())
40-.toolbar {
41-ToolbarItem(placement: .navigation) {
42-Button {
43-withAnimation(.spring(response: 0.28, dampingFraction: 0.86)) {
44-self.sidebarVisible.toggle()
45-}
46-} label: {
47-Image(systemName: "sidebar.leading")
48-}
49-.help(self.sidebarVisible ? "Hide Sidebar" : "Show Sidebar")
50-}
51-}
5236.onReceive(NotificationCenter.default.publisher(for: .openclawSelectSettingsTab)) { note in
5337if let tab = note.object as? SettingsTab {
5438withAnimation(.spring(response: 0.32, dampingFraction: 0.85)) {
5539self.selectedTab = self.validTab(for: tab)
56-self.sidebarVisible = true
5740}
5841}
5942}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。