From 731aa68b4494f312285f198033a3a00f5414bcc2 Mon Sep 17 00:00:00 2001 From: Alejandro Gomez Date: Sat, 14 Jan 2023 12:57:36 +0100 Subject: [PATCH] fix: dont fail to render with invalid URLs --- src/Text.js | 121 +++++++++++++++++++-------------------- src/Util.js | 11 +++- src/element/Note.js | 7 +-- src/pages/ProfilePage.js | 2 +- 4 files changed, 71 insertions(+), 70 deletions(-) diff --git a/src/Text.js b/src/Text.js index 4950aff..77fb7b2 100644 --- a/src/Text.js +++ b/src/Text.js @@ -1,5 +1,3 @@ -import { useMemo } from "react"; - import { Link } from "react-router-dom"; import ReactMarkdown from "react-markdown"; import { TwitterTweetEmbed } from "react-twitter-embed"; @@ -11,54 +9,59 @@ import LazyImage from "./element/LazyImage"; import Hashtag from "./element/Hashtag"; function transformHttpLink(a) { - const url = new URL(a); - const youtubeId = YoutubeUrlRegex.test(a) && RegExp.$1; - const tweetId = TweetUrlRegex.test(a) && RegExp.$2; - const extension = FileExtensionRegex.test(url.pathname.toLowerCase()) && RegExp.$1; - if (extension) { - switch (extension) { - case "gif": - case "jpg": - case "jpeg": - case "png": - case "bmp": - case "webp": { - return ; + try { + const url = new URL(a); + const youtubeId = YoutubeUrlRegex.test(a) && RegExp.$1; + const tweetId = TweetUrlRegex.test(a) && RegExp.$2; + const extension = FileExtensionRegex.test(url.pathname.toLowerCase()) && RegExp.$1; + if (extension) { + switch (extension) { + case "gif": + case "jpg": + case "jpeg": + case "png": + case "bmp": + case "webp": { + return ; + } + case "mp4": + case "mov": + case "mkv": + case "avi": + case "m4v": { + return