From 6b1865ff920cd142271f2597c232d1e0918e795d Mon Sep 17 00:00:00 2001 From: Saul-Mirone Date: Mon, 30 Dec 2024 02:45:59 +0000 Subject: [PATCH] fix(editor): prevent errors from isStrictUrl (#9419) Closes: [BS-2277](https://linear.app/affine-design/issue/BS-2277/typeerror-failed-to-construct-url-invalid-url) --- blocksuite/affine/shared/src/utils/url.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/blocksuite/affine/shared/src/utils/url.ts b/blocksuite/affine/shared/src/utils/url.ts index d00830716..6a24ef539 100644 --- a/blocksuite/affine/shared/src/utils/url.ts +++ b/blocksuite/affine/shared/src/utils/url.ts @@ -130,14 +130,17 @@ function isCommonTLD(url: URL) { * Assuming the user will input anything, we need to check rigorously. */ export function isStrictUrl(str: string) { - if (!isValidUrl(str)) { + try { + if (!isValidUrl(str)) { + return false; + } + + const url = new URL(normalizeUrl(str)); + + return isCommonTLD(url); + } catch { return false; } - const url = new URL(normalizeUrl(str)); - if (isCommonTLD(url)) { - return true; - } - return false; } export function isUrlInClipboard(clipboardData: DataTransfer) {