useFilterSuggestions hook provides the logic to build a custom component that suggests filters to users based on their search query.
Import
Parameters
Function to transform the filter suggestions.
Returns
The list of suggested filters.
Display filter suggestions
useFilterSuggestions hook provides the logic to build a custom component that suggests filters to users based on their search query.
import { useFilterSuggestions } from 'react-instantsearch';
const { items } = useFilterSuggestions({
transformItems: (items) => items.slice(0, 5),
});
const { items } = useFilterSuggestions();
import { useFilterSuggestions } from 'react-instantsearch';
function FilterSuggestions() {
const { items } = useFilterSuggestions();
if (items.length === 0) {
return null;
}
return (
<div className="filter-suggestions">
<h4>Suggested Filters</h4>
<div className="suggestions">
{items.map((item, index) => (
<button
key={index}
className="suggestion-chip"
onClick={() => {
// Apply the suggested filter
console.log('Applying filter:', item);
}}
>
{item.label}
</button>
))}
</div>
</div>
);
}
import { useFilterSuggestions, useSearchBox } from 'react-instantsearch';
function SearchWithFilterSuggestions() {
const { query, refine } = useSearchBox();
const { items } = useFilterSuggestions();
return (
<div>
<input
type="search"
value={query}
onChange={(e) => refine(e.target.value)}
placeholder="Search..."
/>
{items.length > 0 && (
<div className="filter-suggestions">
<p>Try filtering by:</p>
{items.map((item, index) => (
<button key={index} className="chip">
{item.label}
</button>
))}
</div>
)}
</div>
);
}
import { useFilterSuggestions } from 'react-instantsearch';
import type { UseFilterSuggestionsProps } from 'react-instantsearch';
function FilterSuggestions(props?: UseFilterSuggestionsProps) {
const { items } = useFilterSuggestions(props);
return (
<div>
{items.map((item, index) => (
<button key={index}>{item.label}</button>
))}
</div>
);
}