From 59ef1b2909a659663b449be3250573d9464309c8 Mon Sep 17 00:00:00 2001 From: Greg Gardner Date: Sat, 28 Jan 2023 22:35:59 -0800 Subject: [PATCH] Retain original ordering of media URLs (#503) Co-authored-by: Greg --- Packages/Env/Sources/Env/QuickLook.swift | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Packages/Env/Sources/Env/QuickLook.swift b/Packages/Env/Sources/Env/QuickLook.swift index 4c2e5f25..600d2dcc 100644 --- a/Packages/Env/Sources/Env/QuickLook.swift +++ b/Packages/Env/Sources/Env/QuickLook.swift @@ -17,6 +17,11 @@ public class QuickLook: ObservableObject { isPreparing = true } do { + var order = 0 + let pathOrderMap = urls.reduce(into: [String: Int]()) { result, url in + result[url.lastPathComponent] = order + order += 1 + } let paths: [URL] = try await withThrowingTaskGroup(of: URL.self, body: { group in var paths: [URL] = [] for url in urls { @@ -27,7 +32,9 @@ public class QuickLook: ObservableObject { for try await path in group { paths.append(path) } - return paths + return paths.sorted { url1, url2 in + return pathOrderMap[url1.lastPathComponent] ?? 0 < pathOrderMap[url2.lastPathComponent] ?? 0 + } }) withTransaction(transaction) { self.urls = paths