diff --git a/libs/shared/lib/data-access/api/url.ts b/libs/shared/lib/data-access/api/url.ts new file mode 100644 index 0000000000000000000000000000000000000000..0f841a7b95ad2720c01e9f56eea9b3aebcc27abd --- /dev/null +++ b/libs/shared/lib/data-access/api/url.ts @@ -0,0 +1,24 @@ +export enum URLParams { + saveState = 'saveState', +} + +export function getParam(param: URLParams) { + const query = new URLSearchParams(window.location.search); + return query.get(param); +} + +export function setParam(param: URLParams, value: string | undefined) { + const query = new URLSearchParams(window.location.search); + if (!value) { + deleteParam(param); + } else { + query.set(param, value); + history.pushState(null, '', '?' + query.toString()); + } +} + +export function deleteParam(param: URLParams) { + const query = new URLSearchParams(window.location.search); + query.delete(param); + history.pushState(null, '', '?' + query.toString()); +}