From f44781b75a6f3f8d94355739860ae6e69bb92188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Bures=CC=8C?= Date: Tue, 6 May 2025 17:03:17 +0200 Subject: [PATCH] + WIP reversion of list selection to UUID --- Cork/Protocols/Package Tracker.swift | 16 ++++++++++++++++ .../Reusables/Search Result Row.swift | 2 +- Cork/Views/Installation/Sub-Views/Initial.swift | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Cork/Protocols/Package Tracker.swift b/Cork/Protocols/Package Tracker.swift index ab49a8a3..ae978c9a 100644 --- a/Cork/Protocols/Package Tracker.swift +++ b/Cork/Protocols/Package Tracker.swift @@ -12,6 +12,7 @@ import CorkShared protocol PackageTrackable: ObservableObject, Sendable { func processRawPackageArray(trackingArray: [BrewPackage]) async -> [BrewPackage] + func findPackageInTrackerByUUID(packageToFind: BrewPackage) -> BrewPackage? } extension PackageTrackable @@ -60,3 +61,18 @@ extension PackageTrackable return tempArray } } + +extension PackageTrackable +{ + /// Find a package in the tracking array by its UUID + /// The result is the found package in the tracking array + func findPackageInTrackerByUUID(trackingArray: [BrewPackage], uuidToFind: UUID) -> BrewPackage? + { + guard let foundPackage = trackingArray.first(where: { $0.id == uuidToFind }) else + { + return nil + } + + return foundPackage + } +} diff --git a/Cork/Views/Installation/Reusables/Search Result Row.swift b/Cork/Views/Installation/Reusables/Search Result Row.swift index d75d8dea..9d32d8d3 100644 --- a/Cork/Views/Installation/Reusables/Search Result Row.swift +++ b/Cork/Views/Installation/Reusables/Search Result Row.swift @@ -243,7 +243,7 @@ struct SearchResultRow: View, Sendable } } } - .tag(AddFormulaView.PackageSelectedToBeInstalled(package: searchedForPackage, version: selectedVersion.isEmpty ? nil : selectedVersion)) + .tag(searchedForPackage.id) .task { if showDescriptionsInSearchResults diff --git a/Cork/Views/Installation/Sub-Views/Initial.swift b/Cork/Views/Installation/Sub-Views/Initial.swift index 8f2bc61f..ded09326 100644 --- a/Cork/Views/Installation/Sub-Views/Initial.swift +++ b/Cork/Views/Installation/Sub-Views/Initial.swift @@ -29,7 +29,7 @@ struct InstallationInitialView: View @Binding var packageRequested: String - @Binding var foundPackageSelection: AddFormulaView.PackageSelectedToBeInstalled? + @Binding var foundPackageSelection: UUID? @ObservedObject var installationProgressTracker: InstallationProgressTracker