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 {
|
struct EmojiCollectionView: UIViewRepresentable {
|
||||||
let hoarder: EmojiHoarder
|
let hoarder: EmojiHoarder
|
||||||
|
let items: [String]
|
||||||
|
|
||||||
func makeUIView(context: Context) -> UITableView {
|
func makeUIView(context: Context) -> UITableView {
|
||||||
let tableView = UITableView()
|
let tableView = UITableView()
|
||||||
@@ -21,31 +22,30 @@ struct EmojiCollectionView: UIViewRepresentable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func updateUIView(_ uiView: UITableView, context: Context) {
|
func updateUIView(_ uiView: UITableView, context: Context) {
|
||||||
|
context.coordinator.hoarder = hoarder
|
||||||
|
context.coordinator.items = items
|
||||||
uiView.reloadData()
|
uiView.reloadData()
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeCoordinator() -> Coordinator {
|
func makeCoordinator() -> Coordinator {
|
||||||
Coordinator(hoarder: hoarder)
|
Coordinator(hoarder: hoarder, items: items)
|
||||||
}
|
}
|
||||||
|
|
||||||
final class Coordinator: NSObject, UITableViewDataSource {
|
final class Coordinator: NSObject, UITableViewDataSource {
|
||||||
var hoarder: EmojiHoarder
|
var hoarder: EmojiHoarder
|
||||||
|
var items: [String]
|
||||||
|
|
||||||
init(hoarder: EmojiHoarder) {
|
init(hoarder: EmojiHoarder, items: [String]) {
|
||||||
self.hoarder = hoarder
|
self.hoarder = hoarder
|
||||||
|
self.items = items
|
||||||
}
|
}
|
||||||
|
|
||||||
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
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 {
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||||
var emojiName: String
|
let emojiName = items[indexPath.row]
|
||||||
if hoarder.searchTerm.isEmpty {
|
|
||||||
emojiName = hoarder.emojis[indexPath.row].name
|
|
||||||
} else {
|
|
||||||
emojiName = hoarder.filteredEmojis[indexPath.row]
|
|
||||||
}
|
|
||||||
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
|
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
|
||||||
|
|
||||||
cell.contentConfiguration = UIHostingConfiguration {
|
cell.contentConfiguration = UIHostingConfiguration {
|
||||||
|
|||||||
@@ -20,8 +20,13 @@ struct TrieTestingView: View {
|
|||||||
@State var filterTerm: String = ""
|
@State var filterTerm: String = ""
|
||||||
@State var filterResult: [String] = []
|
@State var filterResult: [String] = []
|
||||||
|
|
||||||
|
@State var uikit: Bool = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
VStack {
|
VStack {
|
||||||
|
Toggle("uikit!!", isOn: $uikit)
|
||||||
|
.foregroundStyle(.blue)
|
||||||
|
|
||||||
Button("reset", role: .destructive) {
|
Button("reset", role: .destructive) {
|
||||||
hoarder.trie.root = TrieNode()
|
hoarder.trie.root = TrieNode()
|
||||||
}
|
}
|
||||||
@@ -51,9 +56,14 @@ struct TrieTestingView: View {
|
|||||||
Text("\(filterResult.count)")
|
Text("\(filterResult.count)")
|
||||||
.modifier(numericTextCompat())
|
.modifier(numericTextCompat())
|
||||||
|
|
||||||
|
if uikit {
|
||||||
|
EmojiCollectionView(hoarder: hoarder, items: filterResult)
|
||||||
|
.id(filterResult)
|
||||||
|
} else {
|
||||||
List(filterResult, id: \.self) { item in
|
List(filterResult, id: \.self) { item in
|
||||||
EmojiRow(hoarder: hoarder, emoji: hoarder.trie.dict[item]!)
|
EmojiRow(hoarder: hoarder, emoji: hoarder.trie.dict[item]!)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Text("\(hoarder.trie.root.children.count)")
|
Text("\(hoarder.trie.root.children.count)")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user