import { useEffect, useState } from "react"; import { Modal } from "./Modal"; import { search, type SearchResponse } from "api/api"; import SearchResults from "../SearchResults"; interface Props { open: boolean; setOpen: Function; } export default function SearchModal({ open, setOpen }: Props) { const [query, setQuery] = useState(""); const [data, setData] = useState(); const [debouncedQuery, setDebouncedQuery] = useState(query); const closeSearchModal = () => { setOpen(false); setQuery(""); setData(undefined); }; useEffect(() => { const handler = setTimeout(() => { setDebouncedQuery(query); if (query === "") { setData(undefined); } }, 300); return () => { clearTimeout(handler); }; }, [query]); useEffect(() => { if (debouncedQuery) { search(debouncedQuery).then((r) => { setData(r); }); } }, [debouncedQuery]); return (

Search

setQuery(e.target.value)} />
); }