import { Dispatch, RefObject, SetStateAction } from 'react'; import { IFilterQuery } from '../../../types'; const handleFiltersButton = ( filtersCollapsed: boolean, localFilters: Partial, setSearchQuery: Dispatch>, setFiltersCollapsed: Dispatch> ) => { if (!filtersCollapsed) { setSearchQuery((prev) => { return { ...prev, ...localFilters }; }); } setFiltersCollapsed((prev) => !prev); }; const handleSelectChange = ( element: HTMLSelectElement, setLocalFilters: Dispatch>> ) => { setLocalFilters((prev) => { return { ...prev, [element.name]: element.value }; }); }; const handleSearchButton = ( searchCollapsed: boolean, setSearchCollapsed: Dispatch>, setInputFocus: () => void, searchInputRef: RefObject, setSearchQuery: Dispatch> ) => { if (searchCollapsed) { setSearchCollapsed(false); setInputFocus(); } else if (searchInputRef && searchInputRef.current) { const value = searchInputRef.current.value; setSearchQuery((prev) => { return { ...prev, search: value }; }); setSearchCollapsed(true); searchInputRef.current.value = ''; } }; export { handleFiltersButton, handleSelectChange, handleSearchButton };