"use client"; import { WheelGesturesPlugin } from "embla-carousel-wheel-gestures"; import { motion } from "motion/react"; import { TitleCard } from "@/components/title-card"; import { Carousel, CarouselContent, CarouselItem, } from "@/components/ui/carousel"; interface TitleRowItem { tmdbId: number; type: "movie" | "tv"; title: string; posterPath: string | null; releaseDate: string | null; voteAverage: number; } interface TitleRowProps { heading: string; icon: React.ReactNode; items: TitleRowItem[]; userStatuses?: Record; episodeProgress?: Record; } const staggerContainer = { hidden: {}, visible: { transition: { staggerChildren: 0.05 } }, }; const staggerItem = { hidden: { opacity: 0, y: 12, scale: 0.98 }, visible: { opacity: 1, y: 0, scale: 1, transition: { type: "spring" as const, stiffness: 300, damping: 24 }, }, }; export function TitleRow({ heading, icon, items, userStatuses, episodeProgress, }: TitleRowProps) { if (items.length === 0) return null; return (
{icon}

{heading}

{items.map((item) => ( ))}
); }