import { PLACEHOLDER_IMAGE } from "@hey/data/constants"; import type { DetailedHTMLProps, ImgHTMLAttributes, Ref, SyntheticEvent } from "react"; import { forwardRef, memo, useCallback, useEffect, useState } from "react"; const Image = forwardRef( ( { onError, ...props }: DetailedHTMLProps, HTMLImageElement>, ref: Ref ) => { const [imageLoadFailed, setImageLoadFailed] = useState(false); const handleError = useCallback( (event: SyntheticEvent) => { if (imageLoadFailed) { return; } setImageLoadFailed(true); if (onError) { onError(event); } }, [imageLoadFailed, setImageLoadFailed, onError] ); useEffect(() => { setImageLoadFailed(false); }, [props.src]); return ( {props.alt ); } ); export default memo(Image);