"use client"; import { useEffect, useState } from "react"; import { motion } from "framer-motion"; let interval: any; type Card = { id: number; name: string; designation: string; content: React.ReactNode; }; export const CardStack = ({ items, offset, scaleFactor, }: { items: Card[]; offset?: number; scaleFactor?: number; }) => { const CARD_OFFSET = offset || 10; const SCALE_FACTOR = scaleFactor || 0.06; const [cards, setCards] = useState(items); useEffect(() => { startFlipping(); return () => clearInterval(interval); }, []); const startFlipping = () => { interval = setInterval(() => { setCards((prevCards: Card[]) => { const newArray = [...prevCards]; // create a copy of the array newArray.unshift(newArray.pop()!); // move the last element to the front return newArray; }); }, 5000); }; return (
{cards.map((card, index) => { return (
{card.content}

{card.name}

{card.designation}

); })}
); };