import React, { useCallback, useState } from 'react'; import { debounce } from 'lodash'; import { Search } from 'lucide-react'; import { useSetRecoilState } from 'recoil'; import store from '~/store'; export default function SearchBar({ fetch, clearSearch }) { // const dispatch = useDispatch(); const [inputValue, setInputValue] = useState(''); const setSearchQuery = useSetRecoilState(store.searchQuery); // const [inputValue, setInputValue] = useState(''); const debouncedChangeHandler = useCallback( debounce(q => { setSearchQuery(q); if (q.length > 0) { fetch(q, 1); } }, 750), [setSearchQuery] ); const handleKeyUp = e => { const { value } = e.target; if (e.keyCode === 8 && value === '') { // Value after clearing input: "" console.log(`Value after clearing input: "${value}"`); setSearchQuery(''); clearSearch(); } }; const changeHandler = e => { let q = e.target.value; setInputValue(q); q = q.trim(); if (q === '') { setSearchQuery(''); clearSearch(); } else { debouncedChangeHandler(q); } }; return (