"use client"; import { useEffect, useState } from "react"; import { ChevronLeft, ChevronRight } from "lucide-react"; import { Container } from "@/components/Container"; import { SlotMedia } from "@/components/SlotMedia"; import { parseAspectRatio } from "@/lib/static-images"; import type { SlotMediaItem } from "@/lib/static-images"; type HeroProps = { slides: SlotMediaItem[]; banners: SlotMediaItem[]; sliderAspectRatio?: string; bannerAspectRatio?: string; }; export function Hero({ slides = [], banners = [], sliderAspectRatio, bannerAspectRatio }: HeroProps) { const [index, setIndex] = useState(0); const sliderRatio = parseAspectRatio(sliderAspectRatio); useEffect(() => { if (slides.length <= 1) return; const timer = setInterval(() => { setIndex((current) => (current + 1) % slides.length); }, 5000); return () => clearInterval(timer); }, [slides.length]); const go = (direction: number) => { if (slides.length <= 1) return; setIndex((current) => (current + direction + slides.length) % slides.length); }; return (
{slides.map((slide, i) => ( ))} {slides.length > 1 ? ( <>
{slides.map((slide, i) => (
) : null}
{banners.map((banner) => ( ))}
); }