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)} />
) }