@@ -31,47 +31,23 @@ struct OutdatedPackageListBox: View
3131 {
3232 VStack ( alignment: . leading)
3333 {
34- GroupBoxHeadlineGroupWithArbitraryContent ( image: outdatedPackagesTracker. displayableOutdatedPackagesTracker . allDisplayableOutdatedPackages. count == 1 ? " square.and.arrow.down " : " square.and.arrow.down.on.square " )
34+ GroupBoxHeadlineGroupWithArbitraryContent ( image: outdatedPackagesTracker. allDisplayableOutdatedPackages. count == 1 ? " square.and.arrow.down " : " square.and.arrow.down.on.square " )
3535 {
3636 VStack ( alignment: . leading, spacing: 5 )
3737 {
3838 HStack ( alignment: . firstTextBaseline)
3939 {
40- Group
41- {
42- switch outdatedPackagesTracker. outdatedPackageListBoxViewType {
43- case . managedOnly, . bothManagedAndUnmanaged:
44- Text ( " start-page.updates.count- \( outdatedPackagesTracker. displayableOutdatedPackagesTracker. allDisplayableOutdatedPackages. count) " )
45- case . unmanagedOnly:
46- Text ( " start-page.updates.only-unmanaged.count- \( outdatedPackagesTracker. displayableOutdatedPackagesTracker. allDisplayableOutdatedPackages. count) " )
47- }
48- }
49- . font ( . headline)
40+ boxTitle
5041
5142 Spacer ( )
5243
53- if outdatedPackagesTracker. displayableOutdatedPackagesTracker . areAllOutdatedPackagesMarkedForUpdating
44+ if outdatedPackagesTracker. areAllOutdatedPackagesMarkedForUpdating
5445 {
55- Button
56- {
57- appState. showSheet ( ofType: . fullUpdate)
58- } label: {
59- Text ( " start-page.updates.action " )
60- }
61-
62- #if DEBUG
63- // Text(String(packagesMarkedForUpdating.count))
64- #endif
46+ fullUpdateButton
6547 }
6648 else
6749 {
68- Button
69- {
70- appState. showSheet ( ofType: . partialUpdate( packagesToUpdate: outdatedPackagesTracker. displayableOutdatedPackagesTracker. packagesMarkedForUpdating) )
71- } label: {
72- Text ( " start-page.update-incremental.package-count- \( outdatedPackagesTracker. displayableOutdatedPackagesTracker. packagesMarkedForUpdating. count) " )
73- }
74- . disabled ( outdatedPackagesTracker. displayableOutdatedPackagesTracker. packagesMarkedForUpdating. isEmpty)
50+ partialUpdateButton
7551 }
7652 }
7753
@@ -125,7 +101,51 @@ struct OutdatedPackageListBox: View
125101 }
126102 }
127103 . accessibilityLabel ( " accessibility.label.outdated-packages-box.listing-outdated-packages " )
128- . accessibilityValue ( " accessibility.value.listing-outdated-packages. \( outdatedPackagesTracker. displayableOutdatedPackagesTracker. packagesManagedByHomebrew. count) -managed. \( outdatedPackagesTracker. displayableOutdatedPackagesTracker. packagesThatUpdateThemselves. count) -unmanaged " )
104+ . accessibilityValue ( " accessibility.value.listing-outdated-packages. \( outdatedPackagesTracker. packagesManagedByHomebrew. count) -managed. \( outdatedPackagesTracker. packagesThatUpdateThemselves. count) -unmanaged " )
105+ }
106+
107+ // MARK: - ViewBuilders
108+
109+ @ViewBuilder
110+ private var boxTitle : some View
111+ {
112+ Group
113+ {
114+ switch outdatedPackagesTracker. outdatedPackageListBoxViewType {
115+ case . managedOnly, . bothManagedAndUnmanaged:
116+ Text ( " start-page.updates.count- \( outdatedPackagesTracker. allDisplayableOutdatedPackages. count) " )
117+ case . unmanagedOnly:
118+ Text ( " start-page.updates.only-unmanaged.count- \( outdatedPackagesTracker. allDisplayableOutdatedPackages. count) " )
119+ }
120+ }
121+ . font ( . headline)
122+ }
123+
124+ @ViewBuilder
125+ private var fullUpdateButton : some View
126+ {
127+ Button
128+ {
129+ appState. showSheet ( ofType: . fullUpdate)
130+ } label: {
131+ Text ( " start-page.updates.action " )
132+ }
133+
134+ #if DEBUG
135+ // Text(String(packagesMarkedForUpdating.count))
136+ #endif
137+ }
138+
139+ @ViewBuilder
140+ private var partialUpdateButton : some View
141+ {
142+ Button
143+ {
144+ appState. showSheet ( ofType: . partialUpdate( packagesToUpdate: outdatedPackagesTracker. packagesMarkedForUpdating) )
145+ } label: {
146+ Text ( " start-page.update-incremental.package-count- \( outdatedPackagesTracker. packagesMarkedForUpdating. count) " )
147+ }
148+ . disabled ( outdatedPackagesTracker. packagesMarkedForUpdating. isEmpty)
129149 }
130150
131151 // MARK: - Outdated package list complex
@@ -149,7 +169,7 @@ struct OutdatedPackageListBox: View
149169 } label: {
150170 Text ( " start-page.updated.action.deselect-all " )
151171 }
152- . disabled ( outdatedPackagesTracker. displayableOutdatedPackagesTracker . packagesMarkedForUpdating. isEmpty)
172+ . disabled ( outdatedPackagesTracker. packagesMarkedForUpdating. isEmpty)
153173 . modify
154174 { viewProxy in
155175 if outdatedPackageInfoDisplayAmount != . all
@@ -181,7 +201,7 @@ struct OutdatedPackageListBox: View
181201 } label: {
182202 Text ( " start-page.updated.action.select-all " )
183203 }
184- . disabled ( outdatedPackagesTracker. displayableOutdatedPackagesTracker . areAllOutdatedPackagesMarkedForUpdating)
204+ . disabled ( outdatedPackagesTracker. areAllOutdatedPackagesMarkedForUpdating)
185205 . modify
186206 { viewProxy in
187207 if outdatedPackageInfoDisplayAmount != . all
0 commit comments