@@ -6,16 +6,16 @@ struct XcodeListViewRow: View {
66 let xcode : Xcode
77 let selected : Bool
88 let appState : AppState
9-
9+
1010 var body : some View {
1111 HStack {
1212 appIconView ( for: xcode)
13-
13+
1414 VStack ( alignment: . leading) {
1515 HStack {
1616 Text ( verbatim: " \( xcode. description) \( xcode. version. buildMetadataIdentifiersDisplay) " )
1717 . font ( . body)
18-
18+
1919 if !xcode. identicalBuilds. isEmpty {
2020 Image ( systemName: " square.fill.on.square.fill " )
2121 . font ( . subheadline)
@@ -25,7 +25,7 @@ struct XcodeListViewRow: View {
2525 . help ( " IdenticalBuilds.help " )
2626 }
2727 }
28-
28+
2929 if case let . installed( path) = xcode. installState {
3030 Text ( verbatim: path. string)
3131 . font ( . caption)
@@ -35,9 +35,9 @@ struct XcodeListViewRow: View {
3535 . font ( . caption)
3636 }
3737 }
38-
38+
3939 Spacer ( )
40-
40+
4141 selectControl ( for: xcode)
4242 . padding ( . trailing, 16 )
4343 installControl ( for: xcode)
@@ -54,14 +54,17 @@ struct XcodeListViewRow: View {
5454 RevealButton ( xcode: xcode)
5555 CopyPathButton ( xcode: xcode)
5656 CreateSymbolicLinkButton ( xcode: xcode)
57+ if xcode. version. isPrerelease {
58+ CreateSymbolicBetaLinkButton ( xcode: xcode)
59+ }
5760 Divider ( )
5861 UninstallButton ( xcode: xcode)
59-
62+
6063 #if DEBUG
61- Divider ( )
62- Button ( " Perform post-install steps " ) {
63- appState. performPostInstallSteps ( for: InstalledXcode ( path: path) !) as Void
64- }
64+ Divider ( )
65+ Button ( " Perform post-install steps " ) {
66+ appState. performPostInstallSteps ( for: InstalledXcode ( path: path) !) as Void
67+ }
6568 #endif
6669 }
6770 }
@@ -77,7 +80,7 @@ struct XcodeListViewRow: View {
7780 . foregroundColor ( . secondary)
7881 }
7982 }
80-
83+
8184 @ViewBuilder
8285 private func selectControl( for xcode: Xcode ) -> some View {
8386 if xcode. installState. installed {
@@ -97,7 +100,7 @@ struct XcodeListViewRow: View {
97100 EmptyView ( )
98101 }
99102 }
100-
103+
101104 @ViewBuilder
102105 private func installControl( for xcode: Xcode ) -> some View {
103106 switch xcode. installState {
@@ -129,31 +132,31 @@ struct XcodeListViewRow_Previews: PreviewProvider {
129132 selected: false ,
130133 appState: AppState ( )
131134 )
132-
135+
133136 XcodeListViewRow (
134137 xcode: Xcode ( version: Version ( " 12.2.0 " ) !, installState: . notInstalled, selected: false , icon: nil ) ,
135138 selected: false ,
136139 appState: AppState ( )
137140 )
138-
141+
139142 XcodeListViewRow (
140143 xcode: Xcode ( version: Version ( " 12.1.0 " ) !, installState: . installing( . downloading( progress: configure ( Progress ( totalUnitCount: 100 ) ) { $0. completedUnitCount = 40 } ) ) , selected: false , icon: nil ) ,
141144 selected: false ,
142145 appState: AppState ( )
143146 )
144-
147+
145148 XcodeListViewRow (
146149 xcode: Xcode ( version: Version ( " 12.0.0 " ) !, installState: . installed( Path ( " /Applications/Xcode-12.3.0.app " ) !) , selected: false , icon: nil ) ,
147150 selected: false ,
148151 appState: AppState ( )
149152 )
150-
153+
151154 XcodeListViewRow (
152155 xcode: Xcode ( version: Version ( " 12.0.0+1234A " ) !, installState: . installed( Path ( " /Applications/Xcode-12.3.0.app " ) !) , selected: false , icon: nil ) ,
153156 selected: false ,
154157 appState: AppState ( )
155158 )
156-
159+
157160 XcodeListViewRow (
158161 xcode: Xcode ( version: Version ( " 12.0.0+1234A " ) !, identicalBuilds: [ Version ( " 12.0.0-RC+1234A " ) !] , installState: . installed( Path ( " /Applications/Xcode-12.3.0.app " ) !) , selected: false , icon: nil ) ,
159162 selected: false ,
0 commit comments