Files
sign/packages/lib/client-only/hooks/use-update-search-params.ts

20 lines
597 B
TypeScript
Raw Normal View History

2025-02-14 16:14:02 +11:00
import { useSearchParams } from 'react-router';
2023-06-09 18:21:18 +10:00
export const useUpdateSearchParams = () => {
2025-02-14 16:14:02 +11:00
const [searchParams, setSearchParams] = useSearchParams();
2023-06-09 18:21:18 +10:00
return (params: Record<string, string | number | boolean | null | undefined>) => {
const nextSearchParams = new URLSearchParams(searchParams?.toString() ?? '');
Object.entries(params).forEach(([key, value]) => {
if (value === undefined || value === null) {
nextSearchParams.delete(key);
} else {
nextSearchParams.set(key, String(value));
}
});
2025-02-14 16:14:02 +11:00
setSearchParams(nextSearchParams);
2023-06-09 18:21:18 +10:00
};
};