export const updateQueryParam = (param: string, value: string | number, shouldReplace = true) => { if (typeof window === "undefined") return; const url = new URL(window.location.href); if (url.searchParams.get(param) === value) return; if (value === "" || value === "null") { removeQueryParam(param, shouldReplace); return; } else { url.searchParams.set(param, `${value}`); } if (shouldReplace) { window.history.replaceState({ ...window.history.state, as: url.href }, "", url.href); } else { window.history.pushState({ ...window.history.state, as: url.href }, "", url.href); } }; export const getQueryParam = (param: string) => { if (typeof window === "undefined") return; return new URLSearchParams(window.location.search).get(param); }; export const removeQueryParam = (param: string, shouldReplace = true) => { if (typeof window === "undefined") return; const url = new URL(window.location.href); if (!url.searchParams.get(param)) return; url.searchParams.delete(param); if (shouldReplace) { window.history.replaceState({ ...window.history.state, as: url.href }, "", url.href); } else { window.history.pushState({ ...window.history.state, as: url.href }, "", url.href); } };