"use client"; import { useEffect, useState } from "react"; import Image from "next/image"; import { Images, Eye, Calendar } from "lucide-react"; interface Photo { id: string; filename: string; originalName: string; url: string; views: number; createdAt: string; } interface GalleryProps { initialPhotos: Photo[]; } export function Gallery({ initialPhotos }: GalleryProps) { const [photos, setPhotos] = useState(initialPhotos); useEffect(() => { const handler = (e: Event) => { const customEvent = e as CustomEvent; setPhotos((prev) => [customEvent.detail, ...prev].slice(0, 12)); }; window.addEventListener("photo-uploaded", handler); return () => window.removeEventListener("photo-uploaded", handler); }, []); return ( ); }