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 ( - {suggestion.slice(0, 10).map((s: string) => { - return {s}; - })} ); } diff --git a/components/search/onesearch/suggestionBox.tsx b/components/search/onesearch/suggestionBox.tsx index 70ca5aa..c814e14 100644 --- a/components/search/onesearch/suggestionBox.tsx +++ b/components/search/onesearch/suggestionBox.tsx @@ -1,4 +1,4 @@ -export default function(props: { children: React.ReactNode }) { +export default function(props: { children?: React.ReactNode }) { return (