Actions
To update the state, you can use actions below. Actions are functions that update the Request State and performs an API request.
setSearchTerm("search term");
To get access to the actions within your component, you must wrap your component with our context HOCs.
// Selects `searchTerm` and `setSearchTerm` for use in Component
withSearch(({ searchTerm, setSearchTerm }) => ({
searchTerm,
setSearchTerm
}))(Component);
See WithSearch & withSearch for more information.
There are certain cases where you may need to apply one or more actions at a time. Search UI intelligently batches actions into a single API call.
For example, if you need to apply two filters at once, it is perfectly acceptable to write the following code:
addFilter("states", "Alaska", "any");
addFilter("world_heritage_site", "true");
This will only result in a single API call.
addFilter
addFilter(
name: string,
value: FilterValue,
type: FilterType = "all"
)
Add a filter in addition to current filters values.
Examples
addFilter("states", "Alaska");
addFilter("isPublished", true);
addFilter("rating", 1);
addFilter("states", ["Alaska", "California"], "all");
addFilter("states", ["Alaska", "California"], "any");
addFilter("published",{
name: "published",
from: "2020-01-01",
to: "2020-12-31"
});
addFilter("rating",{
name: "badRating",
from: 1,
to: 6
});
Parameters
Parameters | description |
---|---|
name | Required. Name of the field |
value | Required. Filter Value. See FilterValue type. |
type | Optional. Defaults to all . How the filter is applied. Can be one of any , all , none |
setFilter
setFilter(
name: string,
value: FilterValue,
type: FilterType = "all"
)
Set a filter value, replacing current filter values.
Examples
setFilter("states", "Alaska");
setFilter("isPublished", true);
setFilter("rating", 1);
setFilter("states", ["Alaska", "California"], "all");
setFilter("states", ["Alaska", "California"], "any");
setFilter("published",{
name: "published",
from: "2020-01-01",
to: "2020-12-31"
});
setFilter("rating",{
name: "badRating",
from: 1,
to: 6
});
Parameters
Parameters | description |
---|---|
name | Required. Name of the field |
value | Required. Filter Value. See FilterValue type. |
type | Optional. Defaults to all . How the filter is applied. Can be one of any , all , none |
removeFilter
Removes filters or filter values.
removeFilter(
name: string,
value?: FilterValue,
type?: FilterType
)
Examples
removeFilter("states");
removeFilter("states", ["Alaska", "California"]);
removeFilter("published", {
name: "published",
from: "2020-01-01",
to: "2020-12-31"
});
removeFilter("rating", {
name: "badRating",
from: 1,
to: 6
});
Parameters
Parameters | description |
---|---|
name | Required. Name of the field |
value | Optional. Filter Value. Will remove all filters under field if value not specified. See FilterValue type. |
type | Optional. Defaults to all . How the filter is applied. Can be one of any , all , none |
reset
Reset state to initial search state.
reset();
clearFilters
Clear all filters.
clearFilters((except: string[] = []));
Examples
clearFilters();
clearFilters(["states"]); // field name
Parameters
Parameters | description |
---|---|
except | Optional. String array. Field names which you want to ignore being cleared. |
setCurrent
Update the current page number. Used for paging.
setCurrent(current: number)
Examples
setCurrent(2);
Parameters
Parameters | description |
---|---|
current | Required. Number type. The page number. |
setResultsPerPage
Update the number of results per page. Used for paging.
setResultsPerPage(resultsPerPage: number)
Examples
setResultsPerPage(20);
Parameters
Parameters | description |
---|---|
resultsPerPage | Required. Number type. Sets number of results per page. |
setSearchTerm
setSearchTerm(
searchTerm: string,
{
autocompleteMinimumCharacters = 0,
autocompleteResults = false,
autocompleteSuggestions = false,
shouldClearFilters = true,
refresh = true,
debounce = 0
}: SetSearchTermOptions = {}
)
Update the search term. Also gives you the ability to control autocomplete options.
Examples
setSearchTerm("train");
Parameters
Parameters | description |
---|---|
searchTerm | Required. String type. the new search term to query by |
options | Optional. Object type. See SetSearchTermOptions type. |
SetSearchTermOptions Parameters
Parameters | description |
---|---|
autocompleteMinimumCharacters | Optional. miniumum terms to start performing autocomplete suggestions |
autocompleteResults | Optional. To perform autocomplete Results |
autocompleteSuggestions | Optional. To perform autocomplete Suggestions |
shouldClearFilters | Optional. To clear filters |
refresh | Optional. To refresh results |
debounce | Optional. |
setSort
setSort(
sort: SortOption[] | string,
sortDirection: SortDirection
)
Update the sort option.
Parameters
Parameters | description |
---|---|
sort | SortOption or String - field to sort on |
sortDirection | String - "asc" or "desc" |
trackClickThrough
trackClickThrough(
documentId: string,
tags: string[] = []
)
Report a clickthrough event, which is when a user clicks on a result link.
Parameters
Parameters | description |
---|---|
documentId | String - The document ID associated with the result that was clicked |
tags | Optional. Array[String] Optional tags which can be used to categorize this click event |
trackAutocompleteClickThrough
trackAutocompleteClickThrough(
documentId: string,
tags: string[] = []
)
Report a clickthrough event, which is when a user clicks on an autocomplete suggestion.
Parameters
Parameters | description |
---|---|
documentId | String - The document ID associated with the result that was clicked |
tags | Optional. Array[String] Optional tags which can be used to categorize this click event |
trackAutocompleteSuggestionClickThrough
This action requires the use of the analytics plugin
trackAutocompleteSuggestionClickThrough(
suggestion: string,
postion: number
tags: string[] = []
)
Report a suggestion clickthrough event, which is when a user clicks on an autocomplete suggestion.
Parameters
Parameters | description |
---|---|
suggestion | String - The suggestion that was clicked |
position | Number - The position of the suggestion that was clicked |
tags | Optional. Array[String] Optional tags which can be used to categorize this click event |
a11yNotify
a11yNotify(
messageFunc: string,
messageArgs?: unknown
)
Reads out a screen reader accessible notification. See a11yNotificationMessages
under TODO LINK
Parameters
Parameters | description |
---|---|
messageFunc | String - object key to run as function |
messageArgs | Object - Arguments to pass to form your screen reader message string |
Types
FilterValue & FilterType Types
FilterValue
can be either a value type or a range type.
Types
type FilterValue = FilterValueValue | FilterValueRange;
type FieldValue = string | number | boolean | Array<string | number | boolean>;
type FilterValueValue = FieldValue;
type FilterValueRange = {
from?: FieldValue;
name: string;
to?: FieldValue;
};
type FilterType = "any" | "all" | "none";