fix(markdown): invalid urls in content could crash the app

This commit is contained in:
Tom (plebeius.eth)
2024-11-17 15:59:59 +01:00
parent 24816c6aa8
commit 73bab13e34
+8 -4
View File
@@ -179,18 +179,22 @@ const Markdown = ({ content, title }: MarkdownProps) => {
source: ({ src }) => <span>{src}</span>, source: ({ src }) => <span>{src}</span>,
a: ({ href, children }) => { a: ({ href, children }) => {
if (href && !isInCatalogView) { if (href && !isInCatalogView) {
try {
const linkMediaInfo = getLinkMediaInfo(href); const linkMediaInfo = getLinkMediaInfo(href);
const embedUrl = new URL(href); const embedUrl = href.startsWith('http') ? new URL(href) : null;
if (canEmbed(embedUrl) || getHasThumbnail(linkMediaInfo, href)) { if ((embedUrl && canEmbed(embedUrl)) || getHasThumbnail(linkMediaInfo, href)) {
return <ContentLinkEmbed children={children} href={href} linkMediaInfo={linkMediaInfo} />; return <ContentLinkEmbed children={children} href={href} linkMediaInfo={linkMediaInfo} />;
} else { }
} catch (e) {
console.debug('Invalid URL:', href);
}
return ( return (
<a href={href} target='_blank' rel='noopener noreferrer'> <a href={href} target='_blank' rel='noopener noreferrer'>
{children} {children}
</a> </a>
); );
} }
}
}, },
}} }}
/> />