From 65fca4c7e501ba1113ff33205ff60ca2fa2b333a Mon Sep 17 00:00:00 2001 From: aepetelin Date: Tue, 6 Apr 2021 01:11:32 +0200 Subject: [PATCH] change parseQuery implementation to URLSearchParams. I use .forEach() because not all browsers support .entries() --- frontend/app/utils/parseQuery.ts | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/frontend/app/utils/parseQuery.ts b/frontend/app/utils/parseQuery.ts index fc859a63..efdbd703 100644 --- a/frontend/app/utils/parseQuery.ts +++ b/frontend/app/utils/parseQuery.ts @@ -1,18 +1,9 @@ /** converts widnow.location.search into object */ + export default function parseQuery(search: string = window.location.search): T { - if (search.length < 2) { - return {} as T; - } - - return search - .substr(1) - .split('&') - .reduce((accum, param) => { - const [key, value] = param.split('='); - - return { - ...accum, - [key]: value ? decodeURIComponent(value) : '', - }; - }, {} as T); + const params: { [key: string]: string } = {}; + new URLSearchParams(search).forEach((value: string, key: string) => { + params[key] = value; + }); + return params as T; }