@@ -77,15 +77,8 @@ struct OutdatedPackageListBox: View
7777
7878 DisclosureGroup ( isExpanded: $isDropdownExpanded)
7979 {
80- switch outdatedPackagesTracker. outdatedPackageListBoxViewType
81- {
82- case . managedOnly:
83- < #code#>
84- case . bothManagedAndUnmanaged:
85- < #code#>
86- case . unmanagedOnly:
87- < #code#>
88- }
80+ OutdatedPackagesList ( )
81+ /*
8982 switch outdatedPackageListBoxType
9083 {
9184 case .managedOnly:
@@ -106,8 +99,10 @@ struct OutdatedPackageListBox: View
10699 }
107100 }
108101 }
109-
102+ */
110103 } label: {
104+ // TODO: Fix this
105+ /*
111106 Group
112107 {
113108 if outdatedPackageListBoxType == .unmanagedOnly
@@ -119,6 +114,9 @@ struct OutdatedPackageListBox: View
119114 Text("start-page.updates.list")
120115 }
121116 }
117+ */
118+
119+ Text ( " start-page.updates.list " )
122120 }
123121
124122 }
@@ -127,33 +125,11 @@ struct OutdatedPackageListBox: View
127125 }
128126 }
129127 . accessibilityLabel ( " accessibility.label.outdated-packages-box.listing-outdated-packages " )
130- . accessibilityValue ( " accessibility.value.listing-outdated-packages. \( packagesManagedByHomebrew. count) -managed. \( packagesThatUpdateThemselves. count) -unmanaged " )
128+ . accessibilityValue ( " accessibility.value.listing-outdated-packages. \( outdatedPackagesTracker . displayableOutdatedPackagesTracker . packagesManagedByHomebrew. count) -managed. \( outdatedPackagesTracker . displayableOutdatedPackagesTracker . packagesThatUpdateThemselves. count) -unmanaged " )
131129 }
132130
133131 // MARK: - Outdated package list complex
134132
135- @ViewBuilder
136- func outdatedPackageListComplex( packagesToShow: Set < OutdatedPackage > ) -> some View
137- {
138- if packagesToShow. isEmpty
139- {
140- Text ( " update-packages.no-managed-updates " )
141- . font ( . subheadline)
142- . foregroundColor ( . secondary)
143- }
144- else
145- {
146- if outdatedPackageInfoDisplayAmount != . all
147- {
148- outdatedPackageOverview_list ( packagesToShow: packagesToShow)
149- }
150- else
151- {
152- outdatedPackageOverview_table ( packagesToShow: packagesToShow)
153- }
154- }
155- }
156-
157133 // MARK: - Outdated package list shared view builders
158134
159135 @ViewBuilder
@@ -173,7 +149,7 @@ struct OutdatedPackageListBox: View
173149 } label: {
174150 Text ( " start-page.updated.action.deselect-all " )
175151 }
176- . disabled ( packagesMarkedForUpdating. isEmpty)
152+ . disabled ( outdatedPackagesTracker . displayableOutdatedPackagesTracker . packagesMarkedForUpdating. isEmpty)
177153 . modify
178154 { viewProxy in
179155 if outdatedPackageInfoDisplayAmount != . all
@@ -205,7 +181,7 @@ struct OutdatedPackageListBox: View
205181 } label: {
206182 Text ( " start-page.updated.action.select-all " )
207183 }
208- . disabled ( packagesMarkedForUpdating . count == outdatedPackagesTracker. displayableOutdatedPackagesTracker. allDisplayableOutdatedPackages . count )
184+ . disabled ( outdatedPackagesTracker. displayableOutdatedPackagesTracker. areAllOutdatedPackagesMarkedForUpdating )
209185 . modify
210186 { viewProxy in
211187 if outdatedPackageInfoDisplayAmount != . all
@@ -222,54 +198,6 @@ struct OutdatedPackageListBox: View
222198
223199 // MARK: - Outdated package list view builders
224200
225- @ViewBuilder
226- func outdatedPackageOverview_list( packagesToShow: Set < OutdatedPackage > ) -> some View
227- {
228- List
229- {
230- Section
231- {
232- ForEach ( packagesToShow. sorted ( by: { $0. package . installedOn! < $1. package . installedOn! } ) )
233- { outdatedPackage in
234- Toggle ( isOn: Binding < Bool > (
235- get: {
236- outdatedPackage. isMarkedForUpdating
237- } , set: { toggleState in
238- outdatedPackagesTracker. outdatedPackages = Set ( outdatedPackagesTracker. outdatedPackages. map
239- { modifiedElement in
240- var copyOutdatedPackage : OutdatedPackage = modifiedElement
241- if copyOutdatedPackage. id == outdatedPackage. id
242- {
243- copyOutdatedPackage. isMarkedForUpdating = toggleState
244- }
245- return copyOutdatedPackage
246- } )
247- }
248- ) )
249- {
250- OutdatedPackageListBoxRow ( outdatedPackage: outdatedPackage)
251- . contextMenu
252- {
253- PreviewPackageButton ( packageToPreview: . init(
254- name: outdatedPackage. package . name,
255- type: outdatedPackage. package . type,
256- installedIntentionally: outdatedPackage. package . installedIntentionally
257- ) )
258- }
259- }
260- }
261- } header: {
262- HStack ( alignment: . center, spacing: 10 )
263- {
264- deselectAllButton
265-
266- selectAllButton
267- }
268- }
269- }
270- . listStyle ( . bordered( alternatesRowBackgrounds: true ) )
271- }
272-
273201 @ViewBuilder
274202 func outdatedPackageOverview_table( packagesToShow: Set < OutdatedPackage > ) -> some View
275203 {
@@ -343,67 +271,3 @@ struct OutdatedPackageListBox: View
343271 }
344272 }
345273}
346-
347- // MARK: - List row
348-
349- private struct OutdatedPackageListBoxRow : View
350- {
351- @Default ( . outdatedPackageInfoDisplayAmount) var outdatedPackageInfoDisplayAmount : OutdatedPackageInfoAmount
352- @Default ( . showOldVersionsInOutdatedPackageList) var showOldVersionsInOutdatedPackageList : Bool
353-
354- let outdatedPackage : OutdatedPackage
355-
356- @State private var isExpanded : Bool = false
357-
358- var body : some View
359- {
360- VStack ( alignment: . leading)
361- {
362- switch outdatedPackageInfoDisplayAmount
363- {
364- case . none:
365- outdatedPackageDetails_none
366- case . versionOnly:
367- outdatedPackageDetails_versionOnly
368- case . all:
369- EmptyView ( )
370- }
371- }
372- }
373-
374- // MARK: - Various types of outdated package displays
375-
376- @ViewBuilder
377- var outdatedPackageDetails_none : some View
378- {
379- SanitizedPackageName ( package : outdatedPackage. package , shouldShowVersion: true )
380- }
381-
382- @ViewBuilder
383- var outdatedPackageDetails_versionOnly : some View
384- {
385- HStack ( alignment: . center)
386- {
387- SanitizedPackageName ( package : outdatedPackage. package , shouldShowVersion: true )
388-
389- HStack ( alignment: . center)
390- {
391- let installedVersions : String = outdatedPackage. installedVersions. formatted ( . list( type: . and) )
392- let newerVersion : String = outdatedPackage. newerVersion
393-
394- let pillForegroundColor : NSColor = . secondaryLabelColor
395- let pillBackgroundColor : NSColor = . quinaryLabel
396-
397- if showOldVersionsInOutdatedPackageList
398- {
399-
400- PillText ( text: " \( installedVersions) → \( newerVersion) " , backgroundColor: pillBackgroundColor, textColor: pillForegroundColor)
401- }
402- else
403- {
404- PillText ( text: " \( newerVersion) " , backgroundColor: pillBackgroundColor, textColor: pillForegroundColor)
405- }
406- }
407- }
408- }
409- }
0 commit comments