UNPKG

wouter-search

Version:

Provide useSearchParams(), useSearchParam() and useSearchParamJson() hooks for wouter

15 lines (14 loc) 621 B
import { useCallback, useRef } from 'react'; export function useSearchParam(key, searchParams, setSearchParams) { const searchParam = searchParams.get(key); const setSearchParamRef = useRef(); setSearchParamRef.current = (nextInit, options) => { setSearchParams((prev) => { const prevValue = prev.get(key); prev.set(key, typeof nextInit === 'function' ? nextInit(prevValue) : nextInit); return prev; }, options); }; const setSearchParam = useCallback((...args) => setSearchParamRef.current(...args), []); return [searchParam, setSearchParam]; }