diff --git a/components/search/onesearch/onesearch.tsx b/components/search/onesearch/onesearch.tsx
index 53e4711..402f875 100644
--- a/components/search/onesearch/onesearch.tsx
+++ b/components/search/onesearch/onesearch.tsx
@@ -5,43 +5,31 @@ import { useRecoilValue } from "recoil";
import { queryState } from "@/components/state/query";
import { Suggestion as SuggestionType } from "search-engine-autocomplete";
import { useLocale, useTranslations } from "next-intl";
-import { suggestionsResponse } from "@/global";
+import { suggestionItem, suggestionsResponse } from "@/global";
import getSearchEngineName from "@/lib/getSearchEngineName";
export default function () {
- const [suggestion, setSuggetsion] = useState([] as string[]);
+ const [suggestion, setSuggetsion] = useState([] as suggestionItem[]);
const [lastUpdate, setLastUpdate] = useState(0);
const query = useRecoilValue(queryState);
const engineName = getSearchEngineName();
const lang = useLocale();
const t = useTranslations("Search");
+
useEffect(() => {
- const searchHelperText = `${t("search-help-text", { engine: engineName })}`;
- if (query !== "") setSuggetsion((_) => [`${query} ${searchHelperText}`]);
- else setSuggetsion((_) => []);
const time = new Date().getTime().toString();
fetch(`/api/suggestion?q=${query}&l=${lang}&t=${time}`)
.then((res) => res.json())
.then((data: suggestionsResponse) => {
- const suggestions = data.suggestions;
- if (data.time < lastUpdate) return;
- let result = suggestions.map((s: SuggestionType) => s.suggestion);
- result = result.filter(function (item, pos, self) {
- return self.indexOf(item) == pos;
- });
- setSuggetsion((oldSuggestions) => {
- return oldSuggestions.concat(result).filter(function (item, pos, self) {
- return self.indexOf(item) == pos;
- });
- });
- setLastUpdate(new Date().getTime());
});
}, [query, engineName]);
+
+ useEffect(() => {
+ setLastUpdate(new Date().getTime());
+ }, [query]);
+
return (