|
|
@@ -81,9 +81,18 @@ struct LauncherRootView: View {
|
|
|
let hiddenIDs = decodeUUIDSet(from: hiddenLauncherAppIDsData)
|
|
|
guard !hiddenIDs.isEmpty else { return [] }
|
|
|
let allApps = LauncherApp.sampleApps + customApps
|
|
|
- return allApps
|
|
|
+ let sortedHiddenApps = allApps
|
|
|
.filter { hiddenIDs.contains($0.id) }
|
|
|
.sorted { $0.name.localizedCaseInsensitiveCompare($1.name) == .orderedAscending }
|
|
|
+
|
|
|
+ var seenLinkKeys = Set<String>()
|
|
|
+ return sortedHiddenApps.filter { app in
|
|
|
+ guard let webURL = app.webURL else { return true }
|
|
|
+ let linkKey = webURL.absoluteString.lowercased()
|
|
|
+ guard !seenLinkKeys.contains(linkKey) else { return false }
|
|
|
+ seenLinkKeys.insert(linkKey)
|
|
|
+ return true
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
var body: some View {
|