From f1f65d4e36c56b5f6a0a36a9e6cc32aaafba8ddd Mon Sep 17 00:00:00 2001 From: neon443 <69979447+neon443@users.noreply.github.com> Date: Fri, 31 Oct 2025 23:06:41 +0000 Subject: [PATCH] rewrote refreshDB using a task.detached to refresh the db sets werent a good idea --- StickerSlack/EmojiHoarder.swift | 21 ++++++++------------- StickerSlack/Views/ContentView.swift | 5 +++-- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/StickerSlack/EmojiHoarder.swift b/StickerSlack/EmojiHoarder.swift index 438d308..3209b97 100644 --- a/StickerSlack/EmojiHoarder.swift +++ b/StickerSlack/EmojiHoarder.swift @@ -17,13 +17,13 @@ class EmojiHoarder: ObservableObject { private let encoder = JSONEncoder() private let decoder = JSONDecoder() - @Published var emojis: Set = [] + @Published var emojis: [Emoji] = [] @Published var filteredEmojis: [Emoji] = [] @Published var prefix: Int = 100 init(localOnly: Bool = false) { let localDB = loadLocalDB() - withAnimation { self.emojis = Set(localDB) } + withAnimation { self.emojis = localDB } withAnimation { self.filteredEmojis = localDB } guard !localOnly else { return } @@ -68,7 +68,7 @@ class EmojiHoarder: ObservableObject { func loadRemoteDB() async { async let fetched = self.fetchRemoteDB() if let fetched = await fetched { - withAnimation { self.emojis = Set(fetched) } + withAnimation { self.emojis = fetched } withAnimation { self.filteredEmojis = fetched } } } @@ -86,16 +86,11 @@ class EmojiHoarder: ObservableObject { } } - func refreshDB(withCallback callback: (() -> Void)? = nil) { - Task.detached { - guard let fetched = await self.fetchRemoteDB() else { return } - DispatchQueue.main.async { - withAnimation { self.emojis = fetched } - withAnimation { self.filteredEmojis = fetched } - if let callback { - callback() - } - } + func refreshDB() async { + guard let fetched = await self.fetchRemoteDB() else { return } + DispatchQueue.main.async { + withAnimation { self.emojis = fetched } + withAnimation { self.filteredEmojis = fetched } } } diff --git a/StickerSlack/Views/ContentView.swift b/StickerSlack/Views/ContentView.swift index 9cbc014..9da78c4 100644 --- a/StickerSlack/Views/ContentView.swift +++ b/StickerSlack/Views/ContentView.swift @@ -89,8 +89,9 @@ struct ContentView: View { } } .refreshable { - hoarder.refreshDB() { - hoarder.filterEmojis(by: searchTerm) + Task.detached { + await hoarder.refreshDB() + await hoarder.filterEmojis(by: searchTerm) } } .searchable(text: $searchTerm)