import { Link as MLink, Tooltip } from "@mui/joy"; import { useEffect, useState } from "react"; import { linkServiceClient } from "@/grpcweb"; import { LinkMetadata } from "@/types/proto/api/v2/link_service"; interface Props { url: string; text?: string; } const getFaviconWithGoogleS2 = (url: string) => { try { const urlObject = new URL(url); return `https://www.google.com/s2/favicons?sz=128&domain=${urlObject.hostname}`; } catch (error) { return undefined; } }; const Link: React.FC = ({ text, url }: Props) => { const [linkMetadata, setLinkMetadata] = useState(); useEffect(() => { (async () => { try { const { linkMetadata } = await linkServiceClient.getLinkMetadata({ link: url }, {}); setLinkMetadata(linkMetadata); } catch (error) { console.error("Error fetching URL metadata:", error); } })(); }, [url]); return linkMetadata ? ( {linkMetadata?.title}

{linkMetadata?.title}

{linkMetadata.description && (

{linkMetadata.description}

)} } arrow > {url || text}
) : ( {url || text} ); }; export default Link;