diff options
author | crupest <crupest@outlook.com> | 2020-06-11 17:27:15 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-06-11 17:27:15 +0800 |
commit | cf6cfe87b46a2a3eb2913209092ab4c5639e75c3 (patch) | |
tree | eba7504d04dad89f67524b48d88a3b5eb27de6de /Timeline/ClientApp/src/app/helper.ts | |
parent | 4b8abdd1921935ebb29d18961534db04a2e58fbb (diff) | |
download | timeline-cf6cfe87b46a2a3eb2913209092ab4c5639e75c3.tar.gz timeline-cf6cfe87b46a2a3eb2913209092ab4c5639e75c3.tar.bz2 timeline-cf6cfe87b46a2a3eb2913209092ab4c5639e75c3.zip |
feat(front): Service worker is coming!
Diffstat (limited to 'Timeline/ClientApp/src/app/helper.ts')
-rw-r--r-- | Timeline/ClientApp/src/app/helper.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Timeline/ClientApp/src/app/helper.ts b/Timeline/ClientApp/src/app/helper.ts new file mode 100644 index 00000000..b48829b5 --- /dev/null +++ b/Timeline/ClientApp/src/app/helper.ts @@ -0,0 +1,35 @@ +//copied from https://stackoverflow.com/questions/5999118/how-can-i-add-or-update-a-query-string-parameter +export function updateQueryString( + key: string, + value?: string | null, + url?: string +): string { + if (!url) url = window.location.href; + const re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi'); + let hash; + + if (re.test(url)) { + if (typeof value !== 'undefined' && value !== null) { + return url.replace(re, '$1' + key + '=' + value + '$2$3'); + } else { + hash = url.split('#'); + url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, ''); + if (typeof hash[1] !== 'undefined' && hash[1] !== null) { + url += '#' + hash[1]; + } + return url; + } + } else { + if (typeof value !== 'undefined' && value !== null) { + const separator = url.includes('?') ? '&' : '?'; + hash = url.split('#'); + url = hash[0] + separator + key + '=' + value; + if (typeof hash[1] !== 'undefined' && hash[1] !== null) { + url += '#' + hash[1]; + } + return url; + } else { + return url; + } + } +} |