From cdbba624fe47f9896b7b366939c00369878e31bb Mon Sep 17 00:00:00 2001 From: William Chong Date: Tue, 28 Jan 2025 04:43:38 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20url=20escape=20for=20arwea?= =?UTF-8?q?ve=20key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/IscnRegisterForm.vue | 16 +++------------- pages/edit/_iscnId.vue | 4 +++- utils/ui.js | 4 +++- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/components/IscnRegisterForm.vue b/components/IscnRegisterForm.vue index d742b5af..6da942e9 100644 --- a/components/IscnRegisterForm.vue +++ b/components/IscnRegisterForm.vue @@ -973,19 +973,9 @@ export default class IscnRegisterForm extends Vue { ?.filter((items: any) => items.filename && items.url) ?.map((sameAs: { filename: any; filetype: any; url: any }) => { if (sameAs.filename && sameAs.filetype) { - try { - const parsed = new URL(sameAs.url) - parsed.searchParams.set('name', `${sameAs.filename}.${sameAs.filetype}`) - return parsed.toString() - } catch (e) { - // eslint-disable-next-line no-console - console.error(e) - const parts = sameAs.url.split('?') - if (parts.length === 1) { - return `${sameAs.url}?name=${sameAs.filename}.${sameAs.filetype}` - } - return `${sameAs.url}&name=${sameAs.filename}.${sameAs.filetype}` - } + const parsed = new URL(sameAs.url) + parsed.searchParams.set('name', `${sameAs.filename}.${sameAs.filetype}`) + return parsed.toString() } return '' }) diff --git a/pages/edit/_iscnId.vue b/pages/edit/_iscnId.vue index d570aee2..728fb24f 100644 --- a/pages/edit/_iscnId.vue +++ b/pages/edit/_iscnId.vue @@ -338,7 +338,9 @@ export default class EditIscnPage extends Vue { return this.sameAsList.map( (sameAs: { filename: any; filetype: any; url: any }) => { if (sameAs.filename && sameAs.filetype) { - return `${sameAs.url}?name=${sameAs.filename}.${sameAs.filetype}` + const url = new URL(sameAs.url) + url.searchParams.set('name', `${sameAs.filename}.${sameAs.filetype}`) + return url.toString() } return '' }, diff --git a/utils/ui.js b/utils/ui.js index 58d9d0d7..4bf043b4 100644 --- a/utils/ui.js +++ b/utils/ui.js @@ -52,7 +52,9 @@ export function formatIpfs(ipfsHash) { export function formatArweave(arweaveId, key) { if (key) { - return `ar://${arweaveId}?key=${key}` + const url = new URL(`ar://${arweaveId}`); + url.searchParams.append('key', key); + return url.toString(); } return `ar://${arweaveId}` }