Loading indicator with React InstantSearch Hooks
You can display a loading indicator to inform users on a slow connection that their search is still in progress.
Use InstantSearch’s status
indicator to decide when to show a loading indicator. The status
can be one of the following:
loading
: The search is in progress.stalled
: The search is in progress, but the response is taking longer than expected.error
: The search failed.idle
: The search succeeded.
Best practice is to display a loading indicator only when status
is stalled
, not during a standard (fast) search. Tweak the timing of the stalled
status by setting the stalledSearchDelay
option.
You can then use this condition to display a loading indicator:
1
2
3
4
5
6
7
8
function LoadingIndicator() {
const { status } = useInstantSearch();
if (status === 'stalled') {
return <p>Loading search results</p>;
}
return null;
}
If you want the loading indicator to display as soon as the search starts, use the loading
status in combination with stalled
:
1
2
3
4
5
6
7
8
function LoadingIndicator() {
const { status } = useInstantSearch();
if (status === 'loading' || status === 'stalled') {
return <p>Loading search results</p>;
}
return null;
}