useSearch
The useSearch
hook consumes the search context provided by the SearchProvider
component. You can use this context to change the search state and consume its values.
Import​
import { useSearch } from '@faststore/sdk'
Usage​
// Create a selection sort button
const keyMap = {
price_desc: 'Price, descending',
price_asc: 'Price, ascending',
orders_desc: 'Top sales',
name_asc: 'Name, A-Z',
name_desc: 'Name, Z-A',
release_desc: 'Release date',
discount_desc: 'Discount',
score_desc: 'Relevance',
}
const keys = Object.keys(keyMap)
function Component () {
const {
setSort,
state: { sort },
} = useSearch()
return (
<select
onChange={(e) => setSort(keys[e.target.selectedIndex])}
value={sort}
>
{keys.map((key) => (
<option key={key} value={key}>
{keyMap[key]}
</option>
))}
</select>
)
}
Return​
itemsPerPage
number
Description
Number of items per page.
state
SearchState
Description
Current state of the search represented by the selected facets, sort option, and URL path.
setSort
(sort: SearchSort) => void
Description
Sets the sorting criteria of the search results.
setTerm
(term: string | null) => void
Description
Sets the full-text term.
setPage
(page: number) => void
Description
Sets the current page on search pagination.
setFacet
(facet: Facet, unique?: boolean) => void
Description
Selects a specific facet.
removeFacet
(facet: Facet) => void
Description
Removes a specific facet.
toggleFacet
(facet: Facet) => void
Description
Replaces a specific facet.
toggleFacets
(facets: Facet[]) => void
Description
Toggles a specific facet.
addPrevPage
() => void
Description
Prepends a page to the infinite scroll pagination.
addNextPage
() => void
Description
Appends a page to the infinite scroll pagination.