diff --git a/StickerSlack/EmojiHoarder.swift b/StickerSlack/EmojiHoarder.swift index 3209b97..53adc70 100644 --- a/StickerSlack/EmojiHoarder.swift +++ b/StickerSlack/EmojiHoarder.swift @@ -40,10 +40,13 @@ class EmojiHoarder: ObservableObject { func deleteAllStickers() async { await withTaskGroup { group in - for emoji in emojis { + for i in emojis.indices { group.addTask { - guard await emoji.isLocal else { return } - await emoji.deleteImage() + guard self.emojis[i].isLocal else { return } + self.emojis[i].deleteImage() + DispatchQueue.main.sync { + self.emojis[i].refresh() + } } } } @@ -100,7 +103,7 @@ class EmojiHoarder: ObservableObject { return } Task.detached { - let filtered = await self.emojis.filter { $0.name.localizedCaseInsensitiveContains(searchTerm) } + let filtered = self.emojis.filter { $0.name.localizedCaseInsensitiveContains(searchTerm) } DispatchQueue.main.async { withAnimation(.interactiveSpring) { self.filteredEmojis = Array(filtered) } } diff --git a/StickerSlackTests/StickerSlackTests.swift b/StickerSlackTests/StickerSlackTests.swift index 6dc2b0e..f61b2ae 100644 --- a/StickerSlackTests/StickerSlackTests.swift +++ b/StickerSlackTests/StickerSlackTests.swift @@ -46,16 +46,9 @@ struct StickerSlackTests { } @Test func deleteAllEmojis() async throws { - await withDiscardingTaskGroup { group in - for i in hoarder.emojis.indices { - group.addTask { - hoarder.emojis[i].deleteImage() - await MainActor.run { - hoarder.emojis[i].refresh() - } - } - } - } + let performanceTests = PerformanceTests(hoarder: hoarder) + try! await performanceTests.fakeDownloadAllStickers() + await hoarder.deleteAllStickers() } }