Skip to content
Snippets Groups Projects
Unverified Commit 75482b1f authored by Oisin Coveney's avatar Oisin Coveney Committed by GitHub
Browse files

Remove extra search API call (#34014)

parent 6102fad0
No related branches found
No related tags found
No related merge requests found
......@@ -117,7 +117,10 @@ describe("scenarios > search", () => {
cy.signInAsNormalUser();
cy.visit("/");
getSearchBar().type("ord");
cy.wait("@search");
cy.findByTestId("app-bar").findByDisplayValue("ord");
cy.findAllByTestId("search-result-item-name")
.first()
.should("have.text", "Orders");
......@@ -129,6 +132,8 @@ describe("scenarios > search", () => {
"eq",
`/question/${ORDERS_QUESTION_ID}-orders`,
);
cy.get("@search.all").should("have.length", 1);
});
});
......
import { useEffect, useMemo, useState } from "react";
import { useEffect, useState } from "react";
import { t } from "ttag";
import { push } from "react-router-redux";
import { useDebounce } from "react-use";
......@@ -34,7 +34,8 @@ export const SearchResults = ({
}: SearchResultsProps) => {
const dispatch = useDispatch();
const [debouncedSearchText, setDebouncedSearchText] = useState(searchText);
const [debouncedSearchText, setDebouncedSearchText] = useState<string>();
const isWaitingForDebounce = searchText !== debouncedSearchText;
useDebounce(
() => {
......@@ -44,19 +45,17 @@ export const SearchResults = ({
[searchText],
);
const query = useMemo(
() => ({
q: debouncedSearchText,
limit: DEFAULT_SEARCH_LIMIT,
...searchFilters,
models: models ?? searchFilters.type,
}),
[debouncedSearchText, searchFilters, models],
);
const query = {
q: debouncedSearchText,
limit: DEFAULT_SEARCH_LIMIT,
...searchFilters,
models: models ?? searchFilters.type,
};
const { data: list = [], isLoading } = useSearchListQuery({
query,
reload: true,
enabled: !!debouncedSearchText,
});
const { reset, getRef, cursorIndex } = useListKeyboardNavigation<
......@@ -76,10 +75,10 @@ export const SearchResults = ({
const hasResults = list.length > 0;
if (isLoading) {
if (isLoading || isWaitingForDebounce) {
return (
<Stack p="xl" align="center">
<Loader size="lg" />
<Loader size="lg" data-testid="loading-spinner" />
<Text size="xl" color="text.0">
{t`Loading…`}
</Text>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment