mirror of
https://github.com/neon443/StickerSlack.git
synced 2026-03-11 13:26:17 +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) {
|
func setPrefix(to: Int) {
|
||||||
filterEmojis(by: "")
|
filterEmojis(by: "")
|
||||||
filteredEmojis = Array(filteredEmojis.prefix(prefix))
|
filteredEmojis = Array(filteredEmojis.prefix(prefix))
|
||||||
|
|||||||
@@ -17,9 +17,10 @@ struct ContentView: View {
|
|||||||
NavigationView {
|
NavigationView {
|
||||||
TabView {
|
TabView {
|
||||||
List {
|
List {
|
||||||
TextField("", text: $searchTerm) {
|
TextField("", text: $searchTerm)
|
||||||
hoarder.filterEmojis(by: searchTerm)
|
.onChange(of: searchTerm) { _ in
|
||||||
}
|
hoarder.filterEmojis(by: searchTerm)
|
||||||
|
}
|
||||||
|
|
||||||
.autocorrectionDisabled()
|
.autocorrectionDisabled()
|
||||||
.textFieldStyle(.roundedBorder)
|
.textFieldStyle(.roundedBorder)
|
||||||
@@ -29,11 +30,12 @@ struct ContentView: View {
|
|||||||
ForEach($hoarder.filteredEmojis, id: \.self) { $emoji in
|
ForEach($hoarder.filteredEmojis, id: \.self) { $emoji in
|
||||||
HStack {
|
HStack {
|
||||||
EmojiPreview(emoji: emoji)
|
EmojiPreview(emoji: emoji)
|
||||||
.frame(maxWidth: 100)
|
.frame(maxWidth: 100, maxHeight: 100)
|
||||||
Spacer()
|
Spacer()
|
||||||
if emoji.isLocal {
|
if emoji.isLocal {
|
||||||
Button("", systemImage: "trash") {
|
Button("", systemImage: "trash") {
|
||||||
emoji.deleteImage()
|
emoji.deleteImage()
|
||||||
|
emoji.refresh()
|
||||||
}
|
}
|
||||||
.buttonStyle(.plain)
|
.buttonStyle(.plain)
|
||||||
} else {
|
} else {
|
||||||
@@ -56,7 +58,10 @@ struct ContentView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// .searchable(text: $searchTerm, prompt: "Search")
|
}
|
||||||
|
.refreshable {
|
||||||
|
hoarder.refreshDB()
|
||||||
|
searchTerm = ""
|
||||||
}
|
}
|
||||||
.searchable(text: $searchTerm)
|
.searchable(text: $searchTerm)
|
||||||
.tabItem {
|
.tabItem {
|
||||||
|
|||||||
@@ -41,6 +41,9 @@ struct EmojiPreview: View {
|
|||||||
.padding()
|
.padding()
|
||||||
.symbolRenderingMode(.hierarchical)
|
.symbolRenderingMode(.hierarchical)
|
||||||
.foregroundStyle(.red)
|
.foregroundStyle(.red)
|
||||||
|
.onAppear {
|
||||||
|
id = UUID()
|
||||||
|
}
|
||||||
.onTapGesture {
|
.onTapGesture {
|
||||||
id = UUID()
|
id = UUID()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user