/
dbataeva
/
tasksApp
Обзор
Документация
Войти
/
dbataeva
/
tasksApp
Код
Запросы
2
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
finalProject
dogFood/src/features/Search/model/usePostsSearchForm.ts
38 строк
980 B
Daria Bataeva
refactor(finalProject): divide cart page
15 ноя 2025, 17:02
15 ноя 2025, 17:02
5e6017f
Код
Авторство
О чём код?
import { productsActions } from 'entities/product'; import { useEffect, useState } from 'react'; import { useSearchParams } from 'react-router'; import { useAppDispatch } from 'shared/store'; import { useDebounce } from './useDebounce'; const QUERY_SEARCH_PHRASE = 'q'; export const useProductsSearchForm = () => { const dispatch = useAppDispatch(); const [searchParams, setSearchParams] = useSearchParams(); const [searchValue, setSearchValue] = useState( () => searchParams.get(QUERY_SEARCH_PHRASE) ?? '' ); const optimizedValue = useDebounce(searchValue, 500); useEffect(() => { dispatch(productsActions.setSearchText(optimizedValue)); }, [optimizedValue, dispatch]); useEffect(() => { if (searchValue) { searchParams.set(QUERY_SEARCH_PHRASE, searchValue); } else { searchParams.delete(QUERY_SEARCH_PHRASE); } setSearchParams(searchParams); }, [searchParams, searchValue, setSearchParams]); return { searchValue, setSearchValue, }; };