import useImgProxy from "Hooks/useImgProxy"; import { useEffect, useState } from "react"; import { FormattedMessage } from "react-intl"; interface ProxyImgProps extends React.DetailedHTMLProps, HTMLImageElement> { size?: number; } export const ProxyImg = (props: ProxyImgProps) => { const { src, size, ...rest } = props; const [url, setUrl] = useState(); const [loadFailed, setLoadFailed] = useState(false); const [bypass, setBypass] = useState(false); const { proxy } = useImgProxy(); useEffect(() => { if (src) { const url = proxy(src, size); setUrl(url); } }, [src]); if (loadFailed) { if (bypass) { return ; } return (
{ e.stopPropagation(); setBypass(true); }}>
); } return setLoadFailed(true)} />; };