@@ -16,6 +16,11 @@ struct OutdatedPackagesList: View
1616
1717 @Environment ( OutdatedPackagesTracker . self) var outdatedPackagesTracker : OutdatedPackagesTracker
1818
19+ var areThereAnyHomebrewManagedUpdatesAvailable : Bool
20+ {
21+ return !outdatedPackagesTracker. packagesManagedByHomebrew. isEmpty
22+ }
23+
1924 var areThereAnySelfManagedUpdatesAvailable : Bool
2025 {
2126 return !outdatedPackagesTracker. packagesThatUpdateThemselves. isEmpty
@@ -28,37 +33,54 @@ struct OutdatedPackagesList: View
2833
2934 var body : some View
3035 {
31- if outdatedPackagesTracker. packagesManagedByHomebrew. isEmpty
32- {
33- Text ( " update-packages.no-managed-updates " )
34- . font ( . subheadline)
35- . foregroundColor ( . secondary)
36- }
37- else
36+ switch outdatedPackageInfoDisplayAmount
3837 {
39- switch outdatedPackageInfoDisplayAmount
38+ case . none, . versionOnly:
39+
40+ if areThereAnyHomebrewManagedUpdatesAvailable
4041 {
41- case . none, . versionOnly:
4242 OutdatedPackagesList_List ( packageUpdatingType: . homebrew)
43-
44- if areThereAnySelfManagedUpdatesAvailable
43+ }
44+ else
45+ {
46+ noManagedUpdatesAvailableMessage
47+ }
48+
49+ if areThereAnySelfManagedUpdatesAvailable
50+ {
51+ DisclosureGroup ( " start-page.updates.self-updating. \( numberOfSelfManagedUpdates) .list " )
4552 {
46- DisclosureGroup ( " start-page.updates.self-updating. \( numberOfSelfManagedUpdates) .list " )
47- {
48- OutdatedPackagesList_List ( packageUpdatingType: . selfUpdating)
49- }
53+ OutdatedPackagesList_List ( packageUpdatingType: . selfUpdating)
5054 }
51- case . all:
55+ }
56+ case . all:
57+
58+ if areThereAnyHomebrewManagedUpdatesAvailable
59+ {
5260 OutdatedPackagesList_Table ( packageUpdatingType: . homebrew)
53-
54- if areThereAnySelfManagedUpdatesAvailable
61+ }
62+ else
63+ {
64+ noManagedUpdatesAvailableMessage
65+ }
66+
67+ if areThereAnySelfManagedUpdatesAvailable
68+ {
69+ DisclosureGroup ( " start-page.updates.self-updating. \( numberOfSelfManagedUpdates) .list " )
5570 {
56- DisclosureGroup ( " start-page.updates.self-updating. \( numberOfSelfManagedUpdates) .list " )
57- {
58- OutdatedPackagesList_Table ( packageUpdatingType: . selfUpdating)
59- }
71+ OutdatedPackagesList_Table ( packageUpdatingType: . selfUpdating)
6072 }
6173 }
6274 }
6375 }
76+
77+ @ViewBuilder
78+ var noManagedUpdatesAvailableMessage : some View
79+ {
80+ Text ( " update-packages.no-managed-updates " )
81+ . font ( . subheadline)
82+ . foregroundColor ( . secondary)
83+ . frame ( minWidth: 0 , maxWidth: . infinity, alignment: . leading)
84+ . padding ( [ . leading] )
85+ }
6486}
0 commit comments