'use client'; import axios from 'axios'; import Link from 'next/link'; import React, { useEffect, useState } from 'react'; import Lightbox from "yet-another-react-lightbox"; import "yet-another-react-lightbox/styles.css"; interface GalleryImage { src: string; alt?: string; delay?: number; year: number; } export default function HomePhotoGallerySection() { const [galleryImages, setGalleryImages] = useState([]); const [years, setYears] = useState([]); const [activeYear, setActiveYear] = useState(null); const [open, setOpen] = useState(false); const [currentIndex, setCurrentIndex] = useState(0); useEffect(() => { getEvents(); }, []); const getEvents = async () => { try { const eventRes = await axios.get( 'https://api.tamilculturewaterloo.org/api/events/' ); const eventsData = eventRes?.data?.data || []; // Extract images with year (flattened array) const formatted = eventsData.map((img: any) => ({ id: img.id, src: img.eventimageurl, title: img?.eventtitle || '', description: img?.eventdescription || '', year: img?.year })); setGalleryImages(formatted); // Unique years, sorted latest first const uniqueYears:any = [...new Set(eventsData.map((event: any) => event.year))] setYears(uniqueYears); // Set latest year as default tab if (uniqueYears.length > 0) { setActiveYear(uniqueYears[0]); } } catch (error) { console.log("Error fetching event images:", error); } }; console.log("activeYear", activeYear) console.log("galleryImages", galleryImages) // Filter images by active year const filteredImages = galleryImages.filter((img) => img.year === activeYear) console.log("filteredImages", filteredImages) const handleImageClick = (index: number) => { const actualIndex = galleryImages.findIndex( (img) => img.src === filteredImages[index].src ); setCurrentIndex(actualIndex); setOpen(true); }; return ( <>

Photos Gallery

{/* Year Tabs */}
{years.map((year) => ( ))}
{filteredImages.slice(0, 8).map((img:any, index) => (
handleImageClick(index)} > {img.alt

{img?.eventtitle}

))} {filteredImages.length === 0 && (

No images found for {activeYear}.

)}
Go To Gallery
{/* Lightbox */} setOpen(false)} index={currentIndex} slides={galleryImages.map((img) => ({ src: img.src }))} /> ); }