diff options
Diffstat (limited to 'Sora/Data')
| -rw-r--r-- | Sora/Data/Booru/BooruManager.swift | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift index b3cd6c7..a72df6c 100644 --- a/Sora/Data/Booru/BooruManager.swift +++ b/Sora/Data/Booru/BooruManager.swift @@ -12,6 +12,7 @@ class BooruManager: ObservableObject { @Published var selectedPost: BooruPost? @Published var flavor: BooruProviderFlavor @Published var domain: String + @Published var postIndexMap: [String: Int] = [:] private var currentTask: Task<Void, Never>? let provider: BooruProvider var tags: [String] { @@ -103,6 +104,12 @@ class BooruManager: ObservableObject { self.endOfData = true } else { self.posts += Array(Set(newPosts)) + + self.postIndexMap.merge( + zip(newPosts.indices, newPosts.map(\.id)).reduce(into: [:]) { result, element in + result[element.1] = element.0 + } + ) { _, new in new } } } } catch { |