mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
24 lines
674 B
TypeScript
24 lines
674 B
TypeScript
import { useRouter } from 'next/router';
|
|
import { useCallback } from 'react';
|
|
|
|
export function useQueryParams() {
|
|
const router = useRouter();
|
|
|
|
const updateQuery = useCallback((updates: Record<string, string | undefined>, replace = false) => {
|
|
const newQuery = { ...router.query };
|
|
|
|
Object.entries(updates).forEach(([ key, value ]) => {
|
|
if (value === undefined) {
|
|
delete newQuery[key];
|
|
} else {
|
|
newQuery[key] = value;
|
|
}
|
|
});
|
|
|
|
const routerFn = replace ? router.replace : router.push;
|
|
routerFn({ pathname: router.pathname, query: newQuery }, undefined, { shallow: true });
|
|
}, [ router ]);
|
|
|
|
return { updateQuery };
|
|
}
|