aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Tools/tool.ts
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-14 16:43:33 -0800
committerFuwn <[email protected]>2023-12-14 16:43:33 -0800
commit2cca45221b7bd1dc3d65361a341a7310271a280d (patch)
tree3b7b4ca1ce27ab1503de7a23ea7eb1dca31d1cc6 /src/lib/Tools/tool.ts
parentfeat(sequelspy): display upcoming date (diff)
downloaddue.moe-2cca45221b7bd1dc3d65361a341a7310271a280d.tar.xz
due.moe-2cca45221b7bd1dc3d65361a341a7310271a280d.zip
feat(sequelspy): save options
Diffstat (limited to 'src/lib/Tools/tool.ts')
-rw-r--r--src/lib/Tools/tool.ts13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/Tools/tool.ts b/src/lib/Tools/tool.ts
index 77d80418..fc50a715 100644
--- a/src/lib/Tools/tool.ts
+++ b/src/lib/Tools/tool.ts
@@ -12,3 +12,16 @@ export const clearAllParameters = (saved: string[] = []) => {
history.replaceState(null, '', `?${value.url.searchParams.toString()}`);
});
};
+
+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);