import { forwardRef, useState, useEffect } from 'react'; import { Search, X } from 'lucide-react'; import { useRecoilState, useRecoilValue } from 'recoil'; import store from '~/store'; import { localize } from '~/localization/Translation'; const SearchBar = forwardRef((props, ref) => { const { clearSearch } = props; const [searchQuery, setSearchQuery] = useRecoilState(store.searchQuery); const [showClearIcon, setShowClearIcon] = useState(false); const lang = useRecoilValue(store.lang); const handleKeyUp = (e) => { const { value } = e.target; if (e.keyCode === 8 && value === '') { setSearchQuery(''); clearSearch(); } }; const onChange = (e) => { const { value } = e.target; setSearchQuery(value); setShowClearIcon(value.length > 0); }; useEffect(() => { if (searchQuery.length === 0) { setShowClearIcon(false); } else { setShowClearIcon(true); } }, [searchQuery]); return (
{} { e.code === 'Space' ? e.stopPropagation() : null; }} placeholder={localize(lang, 'com_nav_search_placeholder')} onKeyUp={handleKeyUp} /> { setSearchQuery(''); clearSearch(); }} />
); }); export default SearchBar;