trying to add a only show x thing

This commit is contained in:
neon443
2025-10-28 13:07:55 +00:00
parent f37b254e80
commit 51691c32f3
3 changed files with 31 additions and 2 deletions

View File

@@ -18,6 +18,8 @@ class EmojiHoarder: ObservableObject {
private let decoder = JSONDecoder()
@Published var emojis: [Emoji] = []
@Published var filteredEmojis: [Emoji] = []
@Published var prefix: Int = 100
init() {
guard let fetched = fetchRemoteDB() else {
@@ -26,6 +28,7 @@ class EmojiHoarder: ObservableObject {
}
self.emojis = fetched
self.filteredEmojis = emojis
}
func storeStickers(_ toStore: [UUID]) {
@@ -52,4 +55,22 @@ class EmojiHoarder: ObservableObject {
let decoded: [SlackResponse] = try! decoder.decode([SlackResponse].self, from: data)
return SlackResponse.toEmojis(from: decoded)
}
func setPrefix(to: Int) {
filterEmojis(by: "")
filteredEmojis = Array(filteredEmojis.prefix(prefix))
}
func filterEmojis(by searchTerm: String) {
guard !searchTerm.isEmpty else {
self.filteredEmojis = emojis
return
}
Task {
let filtered = emojis.filter { $0.name.localizedCaseInsensitiveContains(searchTerm) }
DispatchQueue.main.async {
self.filteredEmojis = filtered
}
}
}
}

View File

@@ -11,11 +11,19 @@ import Haptics
struct ContentView: View {
@StateObject var hoarder: EmojiHoarder = EmojiHoarder()
@State var searchTerm: String = ""
var body: some View {
NavigationView {
TabView {
List {
ForEach($hoarder.emojis, id: \.self) { $emoji in
HStack {
Stepper("show?", value: $hoarder.prefix, step: 100) { $0 }
// Button("downloaded", systemImage: "arrow.down.circle.fill") {
// <#code#>
// }
}
ForEach($hoarder.filteredEmojis, id: \.self) { $emoji in
HStack {
EmojiPreview(emoji: emoji, image: emoji.image)
.frame(maxWidth: 100)
@@ -39,6 +47,7 @@ struct ContentView: View {
}
}
}
// .searchable(text: $searchTerm, prompt: "Search")
}
.tabItem {
Label("home", systemImage: "house")

View File

@@ -17,7 +17,6 @@ struct EmojiPreview: View {
var body: some View {
VStack {
Text(emoji.name)
Group {
if let localImage = try? Data(contentsOf: emoji.localImageURL),
let image = UIImage(data: localImage) {