import React, { useEffect, useRef, useState } from "react"; import { type Stop } from "../data/StopDataProvider"; import "./StopGallery.css"; import StopGalleryItem from "./StopGalleryItem"; interface StopGalleryProps { stops: Stop[]; title: string; emptyMessage?: string; } const StopGallery: React.FC = ({ stops, title, emptyMessage, }) => { const scrollRef = useRef(null); const [activeIndex, setActiveIndex] = useState(0); useEffect(() => { const element = scrollRef.current; if (!element || stops.length === 0) { return; } const handleScroll = () => { const scrollLeft = element.scrollLeft; const itemWidth = element.scrollWidth / stops.length; const index = Math.round(scrollLeft / itemWidth); setActiveIndex(index); }; element.addEventListener("scroll", handleScroll); return () => element.removeEventListener("scroll", handleScroll); }, [stops.length]); if (stops.length === 0 && emptyMessage) { return (

{title}

{emptyMessage}

); } if (stops.length === 0) { return null; } return (

{title}

{stops.length}
{stops.map((stop) => ( ))}
{stops.map((_, index) => ( ))}
); }; export default StopGallery;