import { useCallback, useState, forwardRef } from 'react'; interface Props { src: string; alt?: string; lang?: string; width?: number; height?: number; onClick?: React.MouseEventHandler; onMouseDown?: React.MouseEventHandler; onTouchStart?: React.TouchEventHandler; } export const GIFV = forwardRef( ( { src, alt, lang, width, height, onClick, onMouseDown, onTouchStart }, ref, ) => { const [loading, setLoading] = useState(true); const handleLoadedData = useCallback(() => { setLoading(false); }, [setLoading]); const handleClick = useCallback( (e: React.MouseEvent) => { e.stopPropagation(); onClick?.(e); }, [onClick], ); return (
{loading && ( )}
); }, ); GIFV.displayName = 'GIFV';