import React, { useEffect } from 'react'; export default function ImageModal({ imageSrc, isOpen, onClose, onNext, onPrev }) { if (!isOpen) return null; // Set up keyboard event listeners useEffect(() => { const handleKeyDown = (e) => { if (e.key === 'ArrowLeft') { onPrev(); } else if (e.key === 'ArrowRight') { onNext(); } else if (e.key === 'Escape') { onClose(); } }; document.addEventListener('keydown', handleKeyDown); return () => document.removeEventListener('keydown', handleKeyDown); }, [onClose, onNext, onPrev]); // Swipe detection for mobile let touchStartX = 0; let touchEndX = 0; const handleTouchStart = (e) => { touchStartX = e.changedTouches[0].screenX; }; const handleTouchEnd = (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipeGesture(); }; const handleSwipeGesture = () => { if (touchEndX < touchStartX - 50) { onNext(); } else if (touchEndX > touchStartX + 50) { onPrev(); } }; const handleClose = (e) => { if (e.target === e.currentTarget) { onClose(); } }; return (
Modal view
); }