import { useLayoutEffect, useState } from 'react'; import { useLocation } from 'react-router-dom'; import { MagnifyingGlassIcon } from '../../components/Icons'; import { useAuth } from '../../context/AuthContext'; import { ILibraryFilter } from '../../utils/models'; interface SearchPanelProps { setFilter: React.Dispatch> } function SearchPanel({ setFilter }: SearchPanelProps) { const search = useLocation().search; const { user } = useAuth(); const [query, setQuery] = useState(''); function handleChangeQuery(event: React.ChangeEvent) { const newQuery = event.target.value; setQuery(newQuery); setFilter(prev => { return { query: newQuery, is_owned: prev.is_owned, is_common: prev.is_common, is_canonical: prev.is_canonical, is_subscribed: prev.is_subscribed, is_personal: prev.is_personal }; }); } useLayoutEffect(() => { const filterType = new URLSearchParams(search).get('filter'); if (filterType === 'common') { setQuery(''); setFilter({ is_common: true }); } else if (filterType === 'personal' && user) { setQuery(''); setFilter({ is_personal: true }); } }, [user, search, setQuery, setFilter]); return (
); } export default SearchPanel; {/*
setFilterText(event.target.value)} />
*/}