diff options
| author | tamaina <tamaina@hotmail.co.jp> | 2022-03-27 02:21:56 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-27 02:21:56 +0900 |
| commit | a3cdb4cca1f50e1fbd30b379e8b434f2b6338526 (patch) | |
| tree | 4ea73e9dd73edaba53bd3ca401c02e6218ccb6c1 /packages/client/src/components/global | |
| parent | fix null in query (diff) | |
| download | misskey-a3cdb4cca1f50e1fbd30b379e8b434f2b6338526.tar.gz misskey-a3cdb4cca1f50e1fbd30b379e8b434f2b6338526.tar.bz2 misskey-a3cdb4cca1f50e1fbd30b379e8b434f2b6338526.zip | |
fix: Handle decodeURIComponent error (#8411)
Diffstat (limited to 'packages/client/src/components/global')
| -rw-r--r-- | packages/client/src/components/global/url.vue | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/packages/client/src/components/global/url.vue b/packages/client/src/components/global/url.vue index 56a8c3453a..09513670d3 100644 --- a/packages/client/src/components/global/url.vue +++ b/packages/client/src/components/global/url.vue @@ -49,14 +49,22 @@ export default defineComponent({ }, {}, 'closed'); }); + function safeURIDecode(str: string) { + try { + return decodeURIComponent(str); + } catch { + return str; + } + } + return { local, schema: url.protocol, hostname: decodePunycode(url.hostname), port: url.port, - pathname: decodeURIComponent(url.pathname), - query: decodeURIComponent(url.search), - hash: decodeURIComponent(url.hash), + pathname: safeURIDecode(url.pathname), + query: safeURIDecode(url.search), + hash: safeURIDecode(url.hash), self: self, attr: self ? 'to' : 'href', target: self ? null : '_blank', |