import React, { useState, useEffect } from 'react'; import ImageModal from './ImageModal'; export default function ImagesAlbum({ images }) { const [isModalOpen, setIsModalOpen] = useState(false); const [selectedImage, setSelectedImage] = useState(null); const [selectedIndex, setSelectedIndex] = useState(0); const [validImages, setValidImages] = useState(images); const openModal = (image, index) => { setSelectedImage(image); setSelectedIndex(index); setIsModalOpen(true); }; const closeModal = () => { setIsModalOpen(false); setSelectedImage(null); }; // Handle navigation in modal const nextImage = () => { setSelectedIndex((prevIndex) => (prevIndex + 1) % validImages.length); setSelectedImage(validImages[(selectedIndex + 1) % validImages.length]); }; const prevImage = () => { setSelectedIndex((prevIndex) => (prevIndex - 1 + validImages.length) % validImages.length); setSelectedImage(validImages[(selectedIndex - 1 + validImages.length) % validImages.length]); }; // Handle broken images by filtering them out const handleImageError = (brokenImage) => { setValidImages((prevImages) => prevImages.filter((img) => img !== brokenImage)); }; useEffect(() => { const imagesToHide = [] const filteredImages = images.filter((img) => !imagesToHide.includes(img)); setValidImages(filteredImages); }, [images]); if (validImages.length === 0) return null; return (