import { useState } from 'react'; const ImageMagnifier = ({ src, className, width, height, alt, magnifierHeight = 150, magnifierWidth = 150, zoomLevel = 3 }) => { const [showMagnifier, setShowMagnifier] = useState(false); const [[imgWidth, imgHeight], setSize] = useState([0, 0]); const [[x, y], setXY] = useState([0, 0]); const mouseEnter = (e) => { const el = e.currentTarget; const { width, height } = el.getBoundingClientRect(); setSize([width, height]); setShowMagnifier(true); } const mouseLeave = (e) => { e.preventDefault(); setShowMagnifier(false); } const mouseMove = (e) => { const el = e.currentTarget; const { top, left } = el.getBoundingClientRect(); const x = e.pageX - left - window.scrollX; const y = e.pageY - top - window.scrollY; setXY([x, y]); }; return
{alt} mouseEnter(e)} onMouseLeave={(e) => mouseLeave(e)} onMouseMove={(e) => mouseMove(e)} />
}; export default ImageMagnifier;