Files
67cb76f4-73cc-4321-95ae-ee9…/src/components/cardStack/layouts/timelines/TimelinePhoneView.tsx

40 lines
962 B
TypeScript

import React, { useRef, useCallback } from 'react';
import { useCardAnimation } from '../../hooks/useCardAnimation';
import type { CardAnimationConfig } from '../../types';
interface TimelinePhoneViewProps {
items: React.ReactNode[];
animationConfig: CardAnimationConfig;
className?: string;
}
export const TimelinePhoneView: React.FC<TimelinePhoneViewProps> = ({
items,
animationConfig,
className = '',
}) => {
const cardsRef = useRef<HTMLDivElement[]>([]);
useCardAnimation(cardsRef, animationConfig);
const setCardRef = useCallback((index: number, el: HTMLDivElement | null) => {
if (el) {
cardsRef.current[index] = el;
}
}, []);
return (
<div className={`timeline-phone-view ${className}`}>
{items.map((item, index) => (
<div
key={index}
ref={el => setCardRef(index, el)}
className="timeline-item"
>
{item}
</div>
))}
</div>
);
};