State
State can be divided up into a few different types.
- Request State - State that is used as parameters on Search API calls.
- Response State - State that represents a response from a Search API call.
- Application State - The general state.
Request State and Response State will often have similar values. For instance, searchTerm
and resultSearchTerm
.
searchTerm
is the current search term in the UI, and resultSearchTerm
is the term associated with the current
results
. This can be relevant in the UI, where you might not want the search term on the page to change until AFTER
a response is received, so you'd use the resultSearchTerm
state.
Request State
State that is used as parameters on Search API calls.
Request state can be set by:
- Using actions, like
setSearchTerm
- The
initialState
option. - The URL query string, if
trackUrlState
is enabled.
option | Description |
---|---|
current | Current page number |
filters | Array of filters. See Filters section. |
resultsPerPage | |
searchTerm | Search terms to search for |
sort | List of fields and directions to sort on |
Response State
State that represents a response from a Search API call.
It is not directly update-able.
It is updated indirectly by invoking an action which results in a new API request.
field | description |
---|---|
autocompletedResults | An array of results items fetched for an autocomplete dropdown. |
autocompletedResultsRequestId | A unique ID for the current autocompleted search results. |
autocompletedSuggestions | A keyed object of query suggestions. It's keyed by type since multiple types of query suggestions can be set here. |
autocompletedSuggestionsRequestId | A unique ID for the current autocompleted suggestion results. |
facets | Will be populated if facets configured in Search Query Facets Configuration. |
rawResponse | The response object received from the API |
requestId | A unique ID for the current search results. |
results | An array of result items. |
resultSearchTerm | As opposed the the searchTerm state, which is tied to the current search parameter, this is tied to the searchTerm for the current results. There will be a period of time in between when a request is started and finishes where the two pieces of state will differ. |
totalResults | Total number of results found for the current query. |
Application State
Application state is the general application state.
field | description |
---|---|
error | Error message, if an error was thrown. |
isLoading | Whether or not a search is currently being performed. |
wasSearched | Has any query been performed since this driver was created? Can be useful for displaying initial states in the UI. |