rewrote refreshDB

using a task.detached to refresh the db
sets werent a good idea
This commit is contained in:
neon443
2025-10-31 23:06:41 +00:00
parent 46204aa9c2
commit f1f65d4e36
2 changed files with 11 additions and 15 deletions

View File

@@ -17,13 +17,13 @@ class EmojiHoarder: ObservableObject {
private let encoder = JSONEncoder()
private let decoder = JSONDecoder()
@Published var emojis: Set<Emoji> = []
@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 {
func refreshDB() async {
guard let fetched = await self.fetchRemoteDB() else { return }
DispatchQueue.main.async {
withAnimation { self.emojis = fetched }
withAnimation { self.filteredEmojis = fetched }
if let callback {
callback()
}
}
}
}

View File

@@ -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)