mirror of
https://github.com/neon443/StickerSlack.git
synced 2026-03-11 05:19:13 +00:00
trying to add a only show x thing
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user