blob: 2a1a8d6ed0220ebc752b00b36841af2fdaf14bdb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import SwiftUI
struct SearchSuggestionsView: View {
var tags: [BooruTag]
@Binding var searchText: String
private var lastSearchTag: String {
String(searchText.split(separator: " ").last ?? "").lowercased()
}
private var filteredTags: [BooruTag] {
guard !lastSearchTag.isEmpty else { return [] }
return tags.filter { $0.name.lowercased().contains(lastSearchTag) }
}
var body: some View {
ForEach(
tags.filter { tag in
tag.name.lowercased().contains(lastSearchTag)
}
) { suggestion in
Button {
if let range = searchText.range(of: lastSearchTag, options: .backwards) {
searchText.replaceSubrange(range, with: suggestion.name)
}
} label: {
Text(suggestion.name)
}
}
}
}
|