import { Group, Center, Text } from "@mantine/core"; import { Spotlight } from "@mantine/spotlight"; import { IconSearch } from "@tabler/icons-react"; import React, { useState } from "react"; import { Link } from "react-router-dom"; import { useDebouncedValue } from "@mantine/hooks"; import { useShareSearchQuery } from "@/features/search/queries/search-query"; import { buildSharedPageUrl } from "@/features/page/page.utils.ts"; import { getPageIcon } from "@/lib"; import { useTranslation } from "react-i18next"; import { shareSearchSpotlightStore } from "@/features/search/constants.ts"; interface ShareSearchSpotlightProps { shareId?: string; } export function ShareSearchSpotlight({ shareId }: ShareSearchSpotlightProps) { const { t } = useTranslation(); const [query, setQuery] = useState(""); const [debouncedSearchQuery] = useDebouncedValue(query, 300); const { data: searchResults } = useShareSearchQuery({ query: debouncedSearchQuery, shareId, }); const pages = ( searchResults && searchResults.length > 0 ? searchResults : [] ).map((page) => ( {getPageIcon(page?.icon)} {page.title} {page?.highlight && ( )} )); return ( <> } /> {query.length === 0 && pages.length === 0 && ( {t("Start typing to search...")} )} {query.length > 0 && pages.length === 0 && ( {t("No results found...")} )} {pages.length > 0 && pages} > ); }