@@ -1,10 +1,12 @@ export interface NavigationSearchModelLink { title: string slug: string + alternative_titles: string[] } export interface NavigationSearchLink { label: string + alternative_labels?: string[] url: string category: string external?: boolean @@ -21,6 +21,7 @@ export const useNavigationSearchChatLinks = () => { label: el.title, url: 'chat-bot/' + el.slug, category: 'Чат-боты', + alternative_labels: el.alternative_titles })), [chatLinks] ) @@ -21,6 +21,7 @@ export const useNavigationSearchMediaLinks = () => { label: el.title, url: 'images/' + el.slug, category: 'Изображения', + alternative_labels: el.alternative_titles })), [mediaLinks] ) @@ -14,9 +14,20 @@ export const useNavigationSearchModel = (links: NavigationSearchLink[]) => { const filteredLinks = useMemo(() => { if (!search) return links - return links.filter((el) => el.label.toLowerCase().includes(search.toLowerCase())) + return links.filter( + (el) => + el.label.toLowerCase().includes(search.toLowerCase()) || + (el.alternative_labels && + el.alternative_labels.some((el) => + el.toLowerCase().includes(search.toLowerCase()) + )) + ) }, [search, links]) + useEffect(() => { + console.log(filteredLinks) + }, [filteredLinks]) + // hooks const ctrlF = (e: KeyboardEvent) => { if (!searchRef.current) { @@ -30,10 +30,6 @@ export const Search = ({ device }: SearchProps) => { visibleMediaLinks, staticLinks ) - - useEffect(() => { - console.log(links) - }, [links]) const { search, setSearch, searchOpen, setSearchOpen, searchRef, filteredLinks } = useNavigationSearchModel(links) @@ -52,7 +48,7 @@ export const Search = ({ device }: SearchProps) => { sx={{ width: '457px' }} noOptionsText={'Не найдено'} options={filteredLinks} - // filterOptions={filter} + filterOptions={(x) => x} groupBy={(link) => link.category} renderGroup={(params) => (