mirror of
https://github.com/neon443/StickerSlack.git
synced 2026-03-11 13:26:17 +00:00
updated downloadedview to use less ram!!
This commit is contained in:
@@ -25,6 +25,7 @@ class EmojiHoarder: ObservableObject {
|
|||||||
@Published var trie: Trie = Trie()
|
@Published var trie: Trie = Trie()
|
||||||
// @Published var filteredEmojis: [String] = []
|
// @Published var filteredEmojis: [String] = []
|
||||||
@Published var downloadedEmojis: Set<String> = []
|
@Published var downloadedEmojis: Set<String> = []
|
||||||
|
@Published var downloadedEmojisArr: [String] = []
|
||||||
@Published var searchTerm: String = ""
|
@Published var searchTerm: String = ""
|
||||||
|
|
||||||
init(localOnly: Bool = false, skipIndex: Bool = false) {
|
init(localOnly: Bool = false, skipIndex: Bool = false) {
|
||||||
@@ -119,9 +120,11 @@ class EmojiHoarder: ObservableObject {
|
|||||||
|
|
||||||
func buildDownloadedEmojis() {
|
func buildDownloadedEmojis() {
|
||||||
downloadedEmojis = []
|
downloadedEmojis = []
|
||||||
|
downloadedEmojisArr = []
|
||||||
for emoji in emojis {
|
for emoji in emojis {
|
||||||
guard emoji.isLocal else { continue }
|
guard emoji.isLocal else { continue }
|
||||||
downloadedEmojis.insert(emoji.name)
|
downloadedEmojis.insert(emoji.name)
|
||||||
|
downloadedEmojisArr.append(emoji.name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,6 +178,7 @@ class EmojiHoarder: ObservableObject {
|
|||||||
try? await emoji.downloadImage()
|
try? await emoji.downloadImage()
|
||||||
await MainActor.run {
|
await MainActor.run {
|
||||||
self.downloadedEmojis.insert(emoji.name)
|
self.downloadedEmojis.insert(emoji.name)
|
||||||
|
self.downloadedEmojisArr.append(emoji.name)
|
||||||
self.trie.dict[emoji.name]?.refresh()
|
self.trie.dict[emoji.name]?.refresh()
|
||||||
Haptic.success.trigger()
|
Haptic.success.trigger()
|
||||||
}
|
}
|
||||||
@@ -185,6 +189,7 @@ class EmojiHoarder: ObservableObject {
|
|||||||
func delete(emoji: Emoji) {
|
func delete(emoji: Emoji) {
|
||||||
emoji.deleteImage()
|
emoji.deleteImage()
|
||||||
downloadedEmojis.remove(emoji.name)
|
downloadedEmojis.remove(emoji.name)
|
||||||
|
downloadedEmojisArr.removeAll(where: { $0 == emoji.name })
|
||||||
self.trie.dict[emoji.name]?.refresh()
|
self.trie.dict[emoji.name]?.refresh()
|
||||||
Haptic.heavy.trigger()
|
Haptic.heavy.trigger()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ struct DownloadedView: View {
|
|||||||
let columns: Int = max(1, Int((UIScreen.main.bounds.width - 2*spacing) / (minColWidth + spacing)))
|
let columns: Int = max(1, Int((UIScreen.main.bounds.width - 2*spacing) / (minColWidth + spacing)))
|
||||||
let layout = Array(repeating: col, count: columns)
|
let layout = Array(repeating: col, count: columns)
|
||||||
LazyVGrid(columns: layout, spacing: spacing) {
|
LazyVGrid(columns: layout, spacing: spacing) {
|
||||||
ForEach(hoarder.emojis, id: \.self) { emoji in
|
ForEach(hoarder.downloadedEmojisArr, id: \.self) { name in
|
||||||
if hoarder.downloadedEmojis.contains(emoji.name) {
|
if let emoji = hoarder.trie.dict[name] {
|
||||||
ZStack {
|
ZStack {
|
||||||
Rectangle()
|
Rectangle()
|
||||||
.foregroundStyle(isDark ? .black : .white)
|
.foregroundStyle(isDark ? .black : .white)
|
||||||
|
|||||||
Reference in New Issue
Block a user