diff --git a/StickerSlack/Emoji/EmojiHoarder.swift b/StickerSlack/Emoji/EmojiHoarder.swift index d5c8e1b..f6a6eb5 100644 --- a/StickerSlack/Emoji/EmojiHoarder.swift +++ b/StickerSlack/Emoji/EmojiHoarder.swift @@ -21,7 +21,7 @@ class EmojiHoarder: ObservableObject { @Published var trie: Trie = Trie() @Published var filteredEmojis: [String] = [] - @Published var downloadedEmojis: [String] = [] + @Published var downloadedEmojis: Set = [] @Published var searchTerm: String = "" init(localOnly: Bool = false) { @@ -97,7 +97,7 @@ class EmojiHoarder: ObservableObject { downloadedEmojis = [] for emoji in emojis { guard emoji.isLocal else { continue } - downloadedEmojis.append(emoji.name) + downloadedEmojis.insert(emoji.name) } } diff --git a/StickerSlack/SwiftUI/Emoji/EmojiRow.swift b/StickerSlack/SwiftUI/Emoji/EmojiRow.swift index 5538e4b..d8fd3a8 100644 --- a/StickerSlack/SwiftUI/Emoji/EmojiRow.swift +++ b/StickerSlack/SwiftUI/Emoji/EmojiRow.swift @@ -20,7 +20,7 @@ struct EmojiRow: View { ) .frame(maxWidth: 100, maxHeight: 100) Spacer() - if emoji.isLocal { + if hoarder.downloadedEmojis.contains(emoji.name) { Button("", systemImage: "trash") { emoji.deleteImage() emoji.refresh() diff --git a/StickerSlack/UIKit/EmojiCollectionView.swift b/StickerSlack/UIKit/EmojiCollectionView.swift index f7b9dbb..76f418b 100644 --- a/StickerSlack/UIKit/EmojiCollectionView.swift +++ b/StickerSlack/UIKit/EmojiCollectionView.swift @@ -56,7 +56,7 @@ struct EmojiCollectionView: UIViewRepresentable { ) .frame(maxWidth: 100, maxHeight: 100) Spacer() - if hoarder.trie.dict[emojiName]!.isLocal { + if hoarder.downloadedEmojis.contains(emojiName) { Button("", systemImage: "trash") { self.hoarder.trie.dict[emojiName]!.deleteImage() self.hoarder.trie.dict[emojiName]!.refresh() diff --git a/StickerSlackTests/StickerSlackTests.swift b/StickerSlackTests/StickerSlackTests.swift index adc3254..6293998 100644 --- a/StickerSlackTests/StickerSlackTests.swift +++ b/StickerSlackTests/StickerSlackTests.swift @@ -140,4 +140,16 @@ struct PerformanceTests { let _ = hoarder.trie.search(prefix: term) } } + + @Test func testIsLocal() async throws { + for emoji in hoarder.emojis { + let x = emoji.isLocal + } + } + + @Test func testDownloadedEmojis() async throws { + for emoji in hoarder.emojis { + let x = hoarder.downloadedEmojis.contains(emoji.name) + } + } }