diff options
Diffstat (limited to 'src/lib/Utility')
| -rw-r--r-- | src/lib/Utility/html.ts | 1 | ||||
| -rw-r--r-- | src/lib/Utility/parameters.ts | 32 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/lib/Utility/html.ts b/src/lib/Utility/html.ts new file mode 100644 index 00000000..6d2136aa --- /dev/null +++ b/src/lib/Utility/html.ts @@ -0,0 +1 @@ +export const nbsp = (str: string) => str.replace(/ /g, ' '); diff --git a/src/lib/Utility/parameters.ts b/src/lib/Utility/parameters.ts new file mode 100644 index 00000000..cf24eb8c --- /dev/null +++ b/src/lib/Utility/parameters.ts @@ -0,0 +1,32 @@ +import { browser } from '$app/environment'; +import { page } from '$app/stores'; +import { get } from 'svelte/store'; + +export const clearAllParameters = (saved: string[] = []) => { + if (browser) { + const parameters = new URLSearchParams(); + + if (get(page).url.searchParams.has('tool')) + parameters.set('tool', get(page).url.searchParams.get('tool') || ''); + + saved.forEach((key) => { + if (get(page).url.searchParams.has(key)) { + parameters.set(key, get(page).url.searchParams.get(key) || ''); + } + }); + history.replaceState(null, '', `${get(page).url.pathname}?${parameters}`); + } +}; + +export const parseOrDefault = <T = string | number>( + urlParameters: URLSearchParams | null, + parameter: string, + fallback: T +): T => + typeof fallback === 'number' + ? ((browser && urlParameters?.size !== 0 + ? parseInt(urlParameters?.get(parameter) || '', 10) || fallback + : fallback) as T) + : ((browser && urlParameters?.size !== 0 + ? urlParameters?.get(parameter) || fallback + : fallback) as T); |