i love uikit

added a uikit toggel in trietestingview
i think i figured out the uikit refreshing issue 🔥
This commit is contained in:
neon443
2025-11-03 20:58:10 +00:00
parent 4c9cd6c8e6
commit 05d3d22a09
2 changed files with 21 additions and 11 deletions

View File

@@ -12,6 +12,7 @@ import Haptics
struct EmojiCollectionView: UIViewRepresentable {
let hoarder: EmojiHoarder
let items: [String]
func makeUIView(context: Context) -> UITableView {
let tableView = UITableView()
@@ -21,31 +22,30 @@ struct EmojiCollectionView: UIViewRepresentable {
}
func updateUIView(_ uiView: UITableView, context: Context) {
context.coordinator.hoarder = hoarder
context.coordinator.items = items
uiView.reloadData()
}
func makeCoordinator() -> Coordinator {
Coordinator(hoarder: hoarder)
Coordinator(hoarder: hoarder, items: items)
}
final class Coordinator: NSObject, UITableViewDataSource {
var hoarder: EmojiHoarder
var items: [String]
init(hoarder: EmojiHoarder) {
init(hoarder: EmojiHoarder, items: [String]) {
self.hoarder = hoarder
self.items = items
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return hoarder.searchTerm.isEmpty ? hoarder.emojis.count : hoarder.filteredEmojis.count
return items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var emojiName: String
if hoarder.searchTerm.isEmpty {
emojiName = hoarder.emojis[indexPath.row].name
} else {
emojiName = hoarder.filteredEmojis[indexPath.row]
}
let emojiName = items[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.contentConfiguration = UIHostingConfiguration {

View File

@@ -20,8 +20,13 @@ struct TrieTestingView: View {
@State var filterTerm: String = ""
@State var filterResult: [String] = []
@State var uikit: Bool = false
var body: some View {
VStack {
Toggle("uikit!!", isOn: $uikit)
.foregroundStyle(.blue)
Button("reset", role: .destructive) {
hoarder.trie.root = TrieNode()
}
@@ -51,8 +56,13 @@ struct TrieTestingView: View {
Text("\(filterResult.count)")
.modifier(numericTextCompat())
List(filterResult, id: \.self) { item in
EmojiRow(hoarder: hoarder, emoji: hoarder.trie.dict[item]!)
if uikit {
EmojiCollectionView(hoarder: hoarder, items: filterResult)
.id(filterResult)
} else {
List(filterResult, id: \.self) { item in
EmojiRow(hoarder: hoarder, emoji: hoarder.trie.dict[item]!)
}
}
Text("\(hoarder.trie.root.children.count)")