Merge remote-tracking branch 'refs/remotes/origin/main'

This commit is contained in:
neon443
2025-10-31 23:30:51 +00:00
2 changed files with 13 additions and 16 deletions

View File

@@ -22,8 +22,9 @@ class EmojiHoarder: ObservableObject {
@Published var prefix: Int = 100
init(localOnly: Bool = false) {
withAnimation { self.emojis = loadLocalDB() }
withAnimation { self.filteredEmojis = self.emojis }
let localDB = loadLocalDB()
withAnimation { self.emojis = localDB }
withAnimation { self.filteredEmojis = localDB }
guard !localOnly else { return }
Task.detached {
@@ -85,28 +86,23 @@ 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()
}
}
}
}
func filterEmojis(by searchTerm: String) {
guard !searchTerm.isEmpty else {
withAnimation(.interactiveSpring) { self.filteredEmojis = emojis }
withAnimation(.interactiveSpring) { self.filteredEmojis = Array(emojis) }
return
}
Task.detached {
let filtered = await self.emojis.filter { $0.name.localizedCaseInsensitiveContains(searchTerm) }
DispatchQueue.main.async {
withAnimation(.interactiveSpring) { self.filteredEmojis = filtered }
withAnimation(.interactiveSpring) { self.filteredEmojis = Array(filtered) }
}
}
}

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)