import React, { useState, useEffect } from 'react'; interface TypingAnimationProps { text: string; speed?: number; } const TypingAnimation: React.FC = ({ text, speed = 50 }) => { const [displayedText, setDisplayedText] = useState(''); const [currentIndex, setCurrentIndex] = useState(0); useEffect(() => { if (currentIndex < text.length) { const timer = setTimeout(() => { setDisplayedText(prev => prev + text[currentIndex]); setCurrentIndex(prev => prev + 1); }, speed); return () => clearTimeout(timer); } }, [currentIndex, text, speed]); return ( {displayedText} {currentIndex < text.length && ( | )} ); }; export default TypingAnimation;