'use client'; import React, { useRef, useEffect } from 'react'; import { useCardAnimation } from '@/hooks/useCardAnimation'; import { cn } from '@/lib/utils'; export type CardAnimationType = 'none' | 'opacity' | 'slide-up' | 'scale-rotate' | 'blur-reveal'; interface TimelineProcessFlowProps { children: React.ReactNode[]; animationType: CardAnimationType; itemCount: number; useIndividualTriggers?: boolean; className?: string; } export const TimelineProcessFlow: React.FC = ({ children, animationType, itemCount, useIndividualTriggers = false, className, }) => { const containerRef = useRef(null); const itemRefs = useRef<(HTMLDivElement | null)[]>([]); const { itemRefs: animationItemRefs } = useCardAnimation({ animationType, itemCount, useIndividualTriggers, }); useEffect(() => { itemRefs.current = itemRefs.current.slice(0, itemCount); }, [itemCount]); return (
{React.Children.map(children, (child, index) => (
{ if (el) itemRefs.current[index] = el; if (animationItemRefs && animationItemRefs[index]) animationItemRefs[index].current = el; }} className="timeline-item" > {child}
))}
); }; export default TimelineProcessFlow;