diff --git a/packages/app/src/Element/LinkPreview.tsx b/packages/app/src/Element/LinkPreview.tsx index d07eb59..6b58957 100644 --- a/packages/app/src/Element/LinkPreview.tsx +++ b/packages/app/src/Element/LinkPreview.tsx @@ -11,24 +11,32 @@ interface LinkPreviewData { } async function fetchUrlPreviewInfo(url: string) { - const res = await fetch(`${ApiHost}/api/v1/preview?url=${encodeURIComponent(url)}`); - if (res.ok) { - return (await res.json()) as LinkPreviewData; + try { + const res = await fetch(`${ApiHost}/api/v1/preview?url=${encodeURIComponent(url)}`); + if (res.ok) { + return (await res.json()) as LinkPreviewData; + } + } catch (e) { + console.warn(`Failed to load link preview`, url); } } const LinkPreview = ({ url }: { url: string }) => { - const [preview, setPreview] = useState(); + const [preview, setPreview] = useState(); useEffect(() => { (async () => { const data = await fetchUrlPreviewInfo(url); if (data) { setPreview(data); + } else { + setPreview(null); } - })().catch(console.error); + })(); }, [url]); + if (preview === null) return null; + return (
{preview && (