diff --git a/client/src/components/Modals/LinkPreview.tsx b/client/src/components/Modals/LinkPreview.tsx index 7ef41ba..9a9d941 100644 --- a/client/src/components/Modals/LinkPreview.tsx +++ b/client/src/components/Modals/LinkPreview.tsx @@ -2,50 +2,54 @@ import { getLinkPreview } from 'link-preview-js'; import { useState, useEffect } from 'react'; -//Need to move this all server side -const LinkModal = ({ url }: { url: string}) => { - const [linkPreview, setLinkPreview] = useState(null); +const LinkModal = ({ url }: { url: string }) => { + const [linkPreview, setLinkPreview] = useState(null); - useEffect(() => { - getLinkPreview(url) + useEffect(() => { + const proxyUrl = 'https://api.allorigins.win/raw?url='; + getLinkPreview(url) .then((preview) => setLinkPreview(preview as LinkPreview)) - .catch((error) => console.error(error)); - + .catch(error => { + console.error("Error fetching original URL, trying with proxy:", error); + return getLinkPreview(proxyUrl + url); + }) + .then((preview) => setLinkPreview(preview as LinkPreview)) + .catch((error) => console.error("Error fetching URL with proxy:", error)); }, [url]); - if (!linkPreview) { - return {url}; // or some loading state + if (!linkPreview) { + return {url}; // or some loading state } - + return ( -
- - {linkPreview.title} -
- {linkPreview.title} -
-
-
+
+ + {linkPreview.title} +
+ {linkPreview.title} +
+
+
); }; interface LinkPreview { - url: string; - title: string; - siteName?: string; - description?: string; - mediaType: string; - contentType?: string; - images: string[]; - videos: { - url?: string; - secureUrl?: string; - type?: string; - width?: string; - height?: string; - [key: string]: any; - }[]; + url: string; + title: string; + siteName?: string; + description?: string; + mediaType: string; + contentType?: string; + images: string[]; + videos: { + url?: string; + secureUrl?: string; + type?: string; + width?: string; + height?: string; [key: string]: any; - } + }[]; + [key: string]: any; +} export default LinkModal; \ No newline at end of file