Untitled

 avatar
unknown
plain_text
5 months ago
1.7 kB
2
Indexable
struct SearchView: View {

    @State var searchTerm: String = ""

    var sortedMatchingAssets: [String] {
       [
        "aaa1", "bbb1", "ccc1", "aaa2", "bbb2", "ccc2", "aaa3", "bbb3", "ccc3", "aaa4", "bbb4", "ccc4",
        "aaa5", "bbb5", "ccc5", "aaa6", "bbb6", "ccc6", "aaa7", "bbb7", "ccc7", "aaa8", "bbb8", "ccc8",
        "aaa9", "bbb9", "ccc9", "aahtra", "bgrebb", "ccgreac", "aagweaa", "bbbfw", "cafwecc", "aafewa", "bbfweavb", "caw23cc",
        "aaa10", "bbb10", "ccc10", "aaa14", "bbb14", "ccc14", "aaa15", "bbb", "ccc15", "aaa16", "bbb16", "ccc16",
        "aaa11", "bbb11", "ccc11", "aaa17", "bbb17", "ccc17", "aaa18", "bbb18", "ccc18", "aaa19", "bbb19", "ccc19",
        "aaa12", "bbb12", "ccc12", "aaa20", "bbb20", "ccc20", "aa21a", "bb21b", "ccc21", "21a21aa", "b22bb", "22ccc",
        "aaa13", "bbb13", "ccc13", "aa31a", "4bbb", "c22cc", "aad2a", "bb11b", "ccg3c", "a12aa", "bf32bb", "c32cc"
       ]
    }

    var suggestedSearchTerms: [String] {
        guard !searchTerm.isEmpty else { return [] }
        return sortedMatchingAssets.filter { $0.contains(searchTerm) }
    }

    var body: some View {
        ScrollView(.horizontal) {
           HStack {
                ForEach(sortedMatchingAssets, id: \.self) { asset in
                    Button {

                    } label: {
                        Text(asset)
                    }
                }
            }
           .background(.red)
        }
        .scrollClipDisabled()
        .searchable(text: $searchTerm)
        .searchSuggestions {
            ForEach(suggestedSearchTerms, id: \.self) { suggestion in
                Text(suggestion)
            }
        }
        .background(.blue)
    }
}
Editor is loading...
Leave a Comment