Skip to content

Commit 78b8184

Browse files
committed
Hiding History Inspector when source control is disabled in Settings.
1 parent 89ccc14 commit 78b8184

File tree

2 files changed

+28
-21
lines changed

2 files changed

+28
-21
lines changed

CodeEdit/Features/InspectorArea/Views/InspectorAreaView.swift

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
//
2-
// InspectorAreaView.swift
3-
// CodeEdit
4-
//
5-
// Created by Austin Condiff on 3/21/22.
6-
//
7-
81
import SwiftUI
92

103
struct InspectorAreaView: View {
@@ -15,26 +8,17 @@ struct InspectorAreaView: View {
158

169
@EnvironmentObject private var editorManager: EditorManager
1710

11+
@AppSettings(\.sourceControl.general.enableSourceControl)
12+
private var enableSourceControl: Bool
13+
1814
@AppSettings(\.general.inspectorTabBarPosition)
1915
var sidebarPosition: SettingsData.SidebarTabBarPosition
2016

2117
@State private var selection: InspectorTab? = .file
2218

2319
init(viewModel: InspectorAreaViewModel) {
2420
self.viewModel = viewModel
25-
26-
viewModel.tabItems = [.file, .gitHistory]
27-
viewModel.tabItems += extensionManager
28-
.extensions
29-
.map { ext in
30-
ext.availableFeatures.compactMap {
31-
if case .sidebarItem(let data) = $0, data.kind == .inspector {
32-
return InspectorTab.uiExtension(endpoint: ext.endpoint, data: data)
33-
}
34-
return nil
35-
}
36-
}
37-
.joined()
21+
updateTabItems()
3822
}
3923

4024
func getExtension(_ id: String) -> ExtensionInfo? {
@@ -73,5 +57,28 @@ struct InspectorAreaView: View {
7357
.formStyle(.grouped)
7458
.accessibilityElement(children: .contain)
7559
.accessibilityLabel("inspector")
60+
.onChange(of: enableSourceControl) { _ in
61+
updateTabItems()
62+
}
63+
}
64+
65+
private func updateTabItems() {
66+
viewModel.tabItems = [.file] +
67+
(enableSourceControl ? [.gitHistory] : []) +
68+
extensionManager
69+
.extensions
70+
.flatMap { ext in
71+
ext.availableFeatures.compactMap {
72+
if case .sidebarItem(let data) = $0, data.kind == .inspector {
73+
return InspectorTab.uiExtension(endpoint: ext.endpoint, data: data)
74+
}
75+
return nil
76+
}
77+
}
78+
if let selectedTab = selection,
79+
!viewModel.tabItems.isEmpty &&
80+
!viewModel.tabItems.contains(selectedTab) {
81+
selection = viewModel.tabItems[0]
82+
}
7683
}
7784
}

CodeEdit/Features/NavigatorArea/Views/NavigatorAreaView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ struct NavigatorAreaView: View {
7373
return nil
7474
}
7575
}
76-
if let selectedTab = viewModel.selectedTab,
76+
if let selectedTab = viewModel.selectedTab,
7777
!viewModel.tabItems.isEmpty &&
7878
!viewModel.tabItems.contains(selectedTab) {
7979
viewModel.selectedTab = viewModel.tabItems[0]

0 commit comments

Comments
 (0)