"use client"; import { cn } from "@/lib/utils"; import React, { useEffect, useState } from "react"; export const InfiniteMovingCards = ({ items, direction = "left", speed = "fast", pauseOnHover = true, className, }) => { const containerRef = React.useRef(null); const scrollerRef = React.useRef(null); const [start, setStart] = useState(false); useEffect(() => { addAnimation(); }, []); function addAnimation() { if (containerRef.current && scrollerRef.current) { const scrollerContent = Array.from(scrollerRef.current.children); scrollerContent.forEach((item) => { const duplicatedItem = item.cloneNode(true); if (scrollerRef.current) { scrollerRef.current.appendChild(duplicatedItem); } }); getDirection(); getSpeed(); setStart(true); } } const getDirection = () => { if (containerRef.current) { containerRef.current.style.setProperty( "--animation-direction", direction === "left" ? "forwards" : "reverse" ); } }; const getSpeed = () => { if (containerRef.current) { const duration = speed === "fast" ? "20s" : speed === "normal" ? "40s" : "80s"; containerRef.current.style.setProperty("--animation-duration", duration); } }; return (
); };