1
- //
2
- // InspectorAreaView.swift
3
- // CodeEdit
4
- //
5
- // Created by Austin Condiff on 3/21/22.
6
- //
7
-
8
1
import SwiftUI
9
2
10
3
struct InspectorAreaView : View {
@@ -15,26 +8,17 @@ struct InspectorAreaView: View {
15
8
16
9
@EnvironmentObject private var editorManager : EditorManager
17
10
11
+ @AppSettings ( \. sourceControl. general. enableSourceControl)
12
+ private var enableSourceControl : Bool
13
+
18
14
@AppSettings ( \. general. inspectorTabBarPosition)
19
15
var sidebarPosition : SettingsData . SidebarTabBarPosition
20
16
21
17
@State private var selection : InspectorTab ? = . file
22
18
23
19
init ( viewModel: InspectorAreaViewModel ) {
24
20
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 ( )
38
22
}
39
23
40
24
func getExtension( _ id: String ) -> ExtensionInfo ? {
@@ -73,5 +57,28 @@ struct InspectorAreaView: View {
73
57
. formStyle ( . grouped)
74
58
. accessibilityElement ( children: . contain)
75
59
. 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
+ }
76
83
}
77
84
}
0 commit comments