import { useCallback, useEffect } from 'react'; interface ImageLightboxProps { src: string; alt?: string; open: boolean; onClose: () => void; } export const ImageLightbox = ({ src, alt = 'Image', open, onClose, }: ImageLightboxProps): React.JSX.Element | null => { const handleKeyDown = useCallback( (e: KeyboardEvent) => { if (e.key === 'Escape') onClose(); }, [onClose] ); useEffect(() => { if (!open) return; document.addEventListener('keydown', handleKeyDown); return () => document.removeEventListener('keydown', handleKeyDown); }, [open, handleKeyDown]); if (!open) return null; return (