import React, { useState } from 'react'; import { ChevronLeft, ChevronRight, X } from 'lucide-react'; interface RoomGalleryProps { images: string[]; roomName: string; } const RoomGallery: React.FC = ({ images, roomName }) => { const [currentIndex, setCurrentIndex] = useState(0); const [isModalOpen, setIsModalOpen] = useState(false); const safeImages = Array.isArray(images) && images.length > 0 ? images : ['/images/room-placeholder.jpg']; const goToPrevious = () => { setCurrentIndex((prev) => prev === 0 ? safeImages.length - 1 : prev - 1 ); }; const goToNext = () => { setCurrentIndex((prev) => prev === safeImages.length - 1 ? 0 : prev + 1 ); }; const openModal = (index: number) => { setCurrentIndex(index); setIsModalOpen(true); }; const closeModal = () => { setIsModalOpen(false); }; return ( <> {}
{}
openModal(0)} > {`${roomName}
View large image
{}
{safeImages.slice(1, 4).map((image, index) => (
openModal(index + 1)} > {`${roomName} {index === 2 && safeImages.length > 4 && (
+{safeImages.length - 4} images
)}
))}
{} {isModalOpen && (
e.stopPropagation()} > {`${roomName}
{currentIndex + 1} / {safeImages.length}
)} ); }; export default RoomGallery;