diff --git a/src/components/quickstart/TemplateCard.tsx b/src/components/quickstart/TemplateCard.tsx index a26ee2d8..1b848dc3 100644 --- a/src/components/quickstart/TemplateCard.tsx +++ b/src/components/quickstart/TemplateCard.tsx @@ -1,5 +1,6 @@ "use client"; +import { useState, useEffect } from "react"; import { TemplateCategory } from "@/types/quickstart"; interface TemplateCardProps { @@ -12,6 +13,7 @@ interface TemplateCardProps { tags: string[]; }; nodeCount: number; + previewImages?: string[]; isLoading: boolean; onClick: () => void; disabled: boolean; @@ -34,10 +36,31 @@ const CATEGORY_COLORS: Record = { export function TemplateCard({ template, nodeCount, + previewImages = [], isLoading, onClick, disabled, }: TemplateCardProps) { + const [currentImageIndex, setCurrentImageIndex] = useState(0); + const [isTransitioning, setIsTransitioning] = useState(false); + + // Cycle through preview images + useEffect(() => { + if (previewImages.length <= 1) return; + + const interval = setInterval(() => { + setIsTransitioning(true); + setTimeout(() => { + setCurrentImageIndex((prev) => (prev + 1) % previewImages.length); + setIsTransitioning(false); + }, 300); // Fade out duration + }, 2500); // Time between transitions + + return () => clearInterval(interval); + }, [previewImages.length]); + + const hasImages = previewImages.length > 0; + return (