screens/DSSearchResultsScreen
DSSearchResultsScreen
screensFull search screen with a sticky search bar, category filter chips, recent searches, and a results list with skeleton loading.
iOS 17+
Purpose
App-wide search, product search, and in-content search.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| queryreq | Binding<String> | — | Bound search query. |
| resultsreq | [DSSearchResult] | — | Array of result items. |
| isLoading | Bool | false | Shows skeleton rows while loading. |
| categories | [String] | [] | Filter chip options. |
| selectedCategory | Binding<String?> | nil | Active category filter. |
| recentSearches | [String] | [] | Shown when query is empty. |
| onResultSelectreq | ((DSSearchResult) -> Void) | — | Result row tap handler. |
Examples
Global app search
Full search screen with categories.
swift
DSSearchResultsScreen(
query: $searchQuery,
results: viewModel.results,
isLoading: viewModel.isSearching,
categories: ["All", "People", "Projects", "Files"],
selectedCategory: $viewModel.selectedCategory,
recentSearches: viewModel.recentSearches
) { result in
navigate(.resultDetail(result))
}