trying to use Set

This commit is contained in:
neon443
2025-10-31 17:33:25 +00:00
parent a1a15c9cb8
commit 46204aa9c2

View File

@@ -17,13 +17,14 @@ class EmojiHoarder: ObservableObject {
private let encoder = JSONEncoder() private let encoder = JSONEncoder()
private let decoder = JSONDecoder() private let decoder = JSONDecoder()
@Published var emojis: [Emoji] = [] @Published var emojis: Set<Emoji> = []
@Published var filteredEmojis: [Emoji] = [] @Published var filteredEmojis: [Emoji] = []
@Published var prefix: Int = 100 @Published var prefix: Int = 100
init(localOnly: Bool = false) { init(localOnly: Bool = false) {
withAnimation { self.emojis = loadLocalDB() } let localDB = loadLocalDB()
withAnimation { self.filteredEmojis = self.emojis } withAnimation { self.emojis = Set(localDB) }
withAnimation { self.filteredEmojis = localDB }
guard !localOnly else { return } guard !localOnly else { return }
Task.detached { Task.detached {
@@ -67,7 +68,7 @@ class EmojiHoarder: ObservableObject {
func loadRemoteDB() async { func loadRemoteDB() async {
async let fetched = self.fetchRemoteDB() async let fetched = self.fetchRemoteDB()
if let fetched = await fetched { if let fetched = await fetched {
withAnimation { self.emojis = fetched } withAnimation { self.emojis = Set(fetched) }
withAnimation { self.filteredEmojis = fetched } withAnimation { self.filteredEmojis = fetched }
} }
} }
@@ -100,13 +101,13 @@ class EmojiHoarder: ObservableObject {
func filterEmojis(by searchTerm: String) { func filterEmojis(by searchTerm: String) {
guard !searchTerm.isEmpty else { guard !searchTerm.isEmpty else {
withAnimation(.interactiveSpring) { self.filteredEmojis = emojis } withAnimation(.interactiveSpring) { self.filteredEmojis = Array(emojis) }
return return
} }
Task.detached { Task.detached {
let filtered = await self.emojis.filter { $0.name.localizedCaseInsensitiveContains(searchTerm) } let filtered = await self.emojis.filter { $0.name.localizedCaseInsensitiveContains(searchTerm) }
DispatchQueue.main.async { DispatchQueue.main.async {
withAnimation(.interactiveSpring) { self.filteredEmojis = filtered } withAnimation(.interactiveSpring) { self.filteredEmojis = Array(filtered) }
} }
} }
} }