| const { data } = useSelector((s) => s.files); | const { data } = useSelector((s) => s.files); | ||||
| const { t } = useTranslation(); | const { t } = useTranslation(); | ||||
| const [isSearchFieldVisible, setIsSearchFieldVisible] = useState(false); | const [isSearchFieldVisible, setIsSearchFieldVisible] = useState(false); | ||||
| const [timer, setTimer] = useState(null) | |||||
| // const [timer, setTimer] = useState(null); | |||||
| const dispatch = useDispatch(); | const dispatch = useDispatch(); | ||||
| }; | }; | ||||
| const handleChangeContent = (value) => { | const handleChangeContent = (value) => { | ||||
| // setContent(value) | |||||
| clearTimeout(timer) | |||||
| var catFilters = []; | |||||
| filters.categories | |||||
| ?.filter((n) => n.isChecked) | |||||
| .forEach((m) => catFilters.push(m.name)); | |||||
| var extFilters = []; | |||||
| filters.extensions | |||||
| ?.filter((n) => n.isChecked) | |||||
| .forEach((m) => extFilters.push(m.name)); | |||||
| var tagFilters = []; | |||||
| filters.tags | |||||
| ?.filter((n) => n.isChecked) | |||||
| .forEach((m) => tagFilters.push(m.name)); | |||||
| dispatch(setContent(value)); | |||||
| }; | |||||
| dispatch(setContent(value)) | |||||
| const handleKeyDown = (event) => { | |||||
| console.log(filters.content) | |||||
| if (event.key === "Enter" && filters.content !== "" ) { | |||||
| var catFilters = []; | |||||
| filters.categories | |||||
| ?.filter((n) => n.isChecked) | |||||
| .forEach((m) => catFilters.push(m.name)); | |||||
| var extFilters = []; | |||||
| filters.extensions | |||||
| ?.filter((n) => n.isChecked) | |||||
| .forEach((m) => extFilters.push(m.name)); | |||||
| const newTimer = setTimeout(() => { | |||||
| var tagFilters = []; | |||||
| filters.tags | |||||
| ?.filter((n) => n.isChecked) | |||||
| .forEach((m) => tagFilters.push(m.name)); | |||||
| dispatch( | dispatch( | ||||
| getFilesReq({ | getFilesReq({ | ||||
| categories: catFilters, | categories: catFilters, | ||||
| extensions: extFilters, | extensions: extFilters, | ||||
| tags: tagFilters, | tags: tagFilters, | ||||
| content: value, | |||||
| content: filters.content, | |||||
| }, | }, | ||||
| }) | }) | ||||
| ); | ); | ||||
| }, 3000) | |||||
| setTimer(newTimer) | |||||
| } | |||||
| } | |||||
| }; | |||||
| const input = ( | const input = ( | ||||
| <div> | <div> | ||||
| <input | <input | ||||
| placeholder="Pretrazi..." | placeholder="Pretrazi..." | ||||
| value={filters.content === null ? "" : filters.content} | |||||
| value={filters.content === undefined ? "" : filters.content} | |||||
| onChange={(e) => handleChangeContent(e.target.value)} | onChange={(e) => handleChangeContent(e.target.value)} | ||||
| onKeyDown={handleKeyDown} | |||||
| className="candidate-search-field" | className="candidate-search-field" | ||||
| onClick={stopPropagation} | onClick={stopPropagation} | ||||
| role="input" | role="input" |