From c222bc06f9c123d3e2fa4a428d74032f54887485 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sat, 17 Apr 2021 19:56:30 +0300 Subject: feat: add ServiceSearch --- src/hooks/useQuery.ts | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'src/hooks') diff --git a/src/hooks/useQuery.ts b/src/hooks/useQuery.ts index f025a46..e9a00ec 100644 --- a/src/hooks/useQuery.ts +++ b/src/hooks/useQuery.ts @@ -1,9 +1,21 @@ -import { useLocation } from 'react-router-dom'; +import { useHistory } from 'react-router-dom'; -const useQuery = (): Record => { - const location = useLocation(); - const searchParams = new URLSearchParams(location.search); - return Object.fromEntries(searchParams); +interface UseQuery { + query: Record; + setQuery: (query: Record) => void; +} + +const useQuery = (): UseQuery => { + const history = useHistory(); + const searchParams = new URLSearchParams(history.location.search); + const query = Object.fromEntries(searchParams); + + const setQuery = (newQuery: Record): void => { + const queryString = new URLSearchParams(newQuery); + history.push({ search: `?${queryString}` }); + }; + + return { query, setQuery }; }; export default useQuery; -- cgit v1.2.3