mirror of
https://github.com/neon443/StickerSlack.git
synced 2026-03-11 13:26:17 +00:00
i love uikit
added a uikit toggel in trietestingview
i think i figured out the uikit refreshing issue 🔥
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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)")
|
||||
|
||||
Reference in New Issue
Block a user