import React, { useState } from 'react'; import { GlassMagnifier } from 'react-image-magnifiers'; interface ZoomableImageProps { src: string; alt: string; className?: string; magnifierSize?: string; zoomLevel?: number; children?: React.ReactNode; disabled?: boolean; // New prop to prevent zoom on click } export const ZoomableImage: React.FC = ({ src, alt, className = "", magnifierSize = "30%", zoomLevel = 2.5, children, disabled = false }) => { const [isOpen, setIsOpen] = useState(false); const toggleModal = (e: React.MouseEvent) => { if (disabled) return; // Don't open if disabled e.stopPropagation(); setIsOpen(!isOpen); }; return ( <> {/* Thumbnail trigger */}
{alt} {children} {!children && (
)}
{/* Modal */} {isOpen && (
setIsOpen(false)} >
e.stopPropagation()}>
Hover to magnify • Click outside to close
)} ); };