UNPKG

use-push-router

Version:

A custom hook that simplifies modifying the search params in Next.js

45 lines 1.5 kB
export const updateSearchParams = (currentSearchParams) => (params) => { const newSearchParams = new URLSearchParams(currentSearchParams); if ('add' in params && params.add) { Object.entries(params.add).forEach(([key, value]) => { if (Array.isArray(value)) { value.forEach((v) => { newSearchParams.append(key, v); }); } else { newSearchParams.append(key, value); } }); } if ('remove' in params && params.remove) { Object.entries(params.remove).forEach(([key, value]) => { if (typeof value === 'undefined') { newSearchParams.delete(key); } else if (Array.isArray(value)) { value.forEach((v) => { newSearchParams.delete(key, v); }); } else { newSearchParams.delete(key, value); } }); } if ('set' in params && params.set) { Object.entries(params.set).forEach(([key, value]) => { newSearchParams.delete(key); if (Array.isArray(value)) { value.forEach((v) => { newSearchParams.append(key, v); }); } else { newSearchParams.set(key, value); } }); } return newSearchParams; }; //# sourceMappingURL=update-search-params.js.map