organised the project for the first time

This commit is contained in:
neon443
2025-11-05 19:25:55 +00:00
parent 578f5e0149
commit c3cfecb87e
12 changed files with 59 additions and 19 deletions

View File

@@ -0,0 +1,73 @@
//
// ContentView.swift
// StickerSlack
//
// Created by neon443 on 15/10/2025.
//
import SwiftUI
import Haptics
struct ContentView: View {
@StateObject var hoarder: EmojiHoarder = EmojiHoarder()
@State var searchTerm: String = ""
var body: some View {
TabView {
List {
ForEach(hoarder.downloadedEmojis, id: \.self) { name in
if let emoji = hoarder.trie.dict[name] {
EmojiRow(hoarder: hoarder, emoji: emoji)
}
}
}
.tabItem {
Label("Downloaded", systemImage: "arrow.down.circle.fill")
}
List {
ForEach(hoarder.emojis, id: \.self) { emoji in
EmojiRow(hoarder: hoarder, emoji: emoji)
}
}
.tabItem {
Label("Browse", systemImage: "square.grid.2x2.fill")
}
List {
Text("\(searchTerm.isEmpty ? hoarder.emojis.count : hoarder.filteredEmojis.count) Emoji")
ForEach(hoarder.filteredEmojis, id: \.self) { name in
if let emoji = hoarder.trie.dict[name] {
EmojiRow(hoarder: hoarder, emoji: emoji)
}
}
}
.onChange(of: searchTerm) { _ in
hoarder.filterEmojis(by: searchTerm)
}
.refreshable {
Task.detached {
await hoarder.refreshDB()
}
searchTerm = ""
}
.tabItem {
Label("Search", systemImage: "magnifyingglass")
}
TrieTestingView(
hoarder: hoarder,
)
.tabItem {
Label("Tree", systemImage: "tree.fill")
}
}
.searchable(text: $searchTerm, placement: .automatic)
}
}
#Preview {
ContentView(hoarder: EmojiHoarder(localOnly: true))
}