import { useState } from "react"; import Icon from "./Icon"; interface Props { url: string; } const getFaviconUrlWithProvider = (url: string, provider: string) => { try { const searchParams = new URLSearchParams(); searchParams.set("domain", new URL(url).hostname); return new URL(`?${searchParams.toString()}`, provider).toString(); } catch (error) { return ""; } }; const LinkFavicon = (props: Props) => { const { url } = props; const faviconProvider = "https://www.google.com/s2/favicons"; const [faviconUrl, setFaviconUrl] = useState(getFaviconUrlWithProvider(url, faviconProvider)); const handleImgError = () => { setFaviconUrl(""); }; return faviconUrl ? ( ) : ( ); }; export default LinkFavicon;