use-push-router
Version:
A custom hook that simplifies modifying the search params in Next.js
18 lines • 779 B
JavaScript
import { usePathname, useRouter } from 'next/navigation';
import { useModifiableSearchParams } from './use-modifiable-search-params';
import { useCallback, useMemo } from 'react';
export const usePushRoute = () => {
const router = useRouter();
const pathname = usePathname();
const { updateSearchParams, searchParams } = useModifiableSearchParams();
const pushSearchParams = useCallback((params) => {
const newSearchParams = updateSearchParams(params);
router.push(`${pathname}?${newSearchParams.toString()}`);
}, [pathname, router, updateSearchParams]);
return useMemo(() => ({
pushSearchParams,
router,
searchParams,
}), [pushSearchParams, router, searchParams]);
};
//# sourceMappingURL=use-push-route.js.map