import { useMemo, useRef, useState } from "react"; import { createAutocomplete } from "@algolia/autocomplete-core"; import Link from "next/link"; import { chakra, Box, Input, InputLeftElement, InputGroup, Image, Center, Button, Flex, } from "@chakra-ui/react"; import { IoCloudDownloadOutline, IoLink, IoSearch } from "react-icons/io5"; import { Algolia } from "components/svg"; const AutocompleteItem = ({ id, title, href, url }) => { return ( <>
{title}
{title}
); }; export default function Search(props) { const [autocompleteState, setAutocompleteState] = useState({ collections: [], }); const autocomplete = useMemo( () => createAutocomplete({ placeholder: "Search icons...", onStateChange: ({ state }) => setAutocompleteState(state), getSources: () => [ { sourceId: "svgs-next-api", getItems: ({ query }) => { if (!!query) { return fetch(`/api/search?q=${query}`).then((res) => res.json() ); } }, }, ], ...props, }), [props] ); const formRef = useRef(null); const inputRef = useRef(null); const formProps = autocomplete.getFormProps({ inputElement: inputRef.current, }); const inputProps = autocomplete.getInputProps({ inputElement: inputRef.current, }); return (
<> {autocompleteState.collections.map((collection, index) => { const { items } = collection; return (
{items.length > 0 && ( )}
); })}
); }