mirror of
https://github.com/neon443/StickerSlack.git
synced 2026-03-11 05:19:13 +00:00
refreshable contentview
auto retry if image load fails added a refresh function refresh on delete
This commit is contained in:
@@ -68,6 +68,14 @@ class EmojiHoarder: ObservableObject {
|
||||
}
|
||||
}
|
||||
|
||||
func refreshDB() {
|
||||
Task {
|
||||
guard let fetched = try? await fetchRemoteDB() else { return }
|
||||
self.emojis = fetched
|
||||
self.filteredEmojis = fetched
|
||||
}
|
||||
}
|
||||
|
||||
func setPrefix(to: Int) {
|
||||
filterEmojis(by: "")
|
||||
filteredEmojis = Array(filteredEmojis.prefix(prefix))
|
||||
|
||||
@@ -17,9 +17,10 @@ struct ContentView: View {
|
||||
NavigationView {
|
||||
TabView {
|
||||
List {
|
||||
TextField("", text: $searchTerm) {
|
||||
hoarder.filterEmojis(by: searchTerm)
|
||||
}
|
||||
TextField("", text: $searchTerm)
|
||||
.onChange(of: searchTerm) { _ in
|
||||
hoarder.filterEmojis(by: searchTerm)
|
||||
}
|
||||
|
||||
.autocorrectionDisabled()
|
||||
.textFieldStyle(.roundedBorder)
|
||||
@@ -29,11 +30,12 @@ struct ContentView: View {
|
||||
ForEach($hoarder.filteredEmojis, id: \.self) { $emoji in
|
||||
HStack {
|
||||
EmojiPreview(emoji: emoji)
|
||||
.frame(maxWidth: 100)
|
||||
.frame(maxWidth: 100, maxHeight: 100)
|
||||
Spacer()
|
||||
if emoji.isLocal {
|
||||
Button("", systemImage: "trash") {
|
||||
emoji.deleteImage()
|
||||
emoji.refresh()
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
} else {
|
||||
@@ -56,7 +58,10 @@ struct ContentView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
// .searchable(text: $searchTerm, prompt: "Search")
|
||||
}
|
||||
.refreshable {
|
||||
hoarder.refreshDB()
|
||||
searchTerm = ""
|
||||
}
|
||||
.searchable(text: $searchTerm)
|
||||
.tabItem {
|
||||
|
||||
@@ -41,6 +41,9 @@ struct EmojiPreview: View {
|
||||
.padding()
|
||||
.symbolRenderingMode(.hierarchical)
|
||||
.foregroundStyle(.red)
|
||||
.onAppear {
|
||||
id = UUID()
|
||||
}
|
||||
.onTapGesture {
|
||||
id = UUID()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user