import React from "react"; import { useEffect, useState } from "react"; interface TypingAnimationProps { text: string; duration?: number; className?: string; } export function TypingAnimation({ text, duration = 50 }: TypingAnimationProps) { const [displayedText, setDisplayedText] = useState(""); const [i, setI] = useState(0); useEffect(() => { const typingEffect = setInterval(() => { if (i < text.length) { setDisplayedText(text.substring(0, i + 1)); setI(i + 1); } else { clearInterval(typingEffect); } }, duration); return () => { clearInterval(typingEffect); }; }, [duration, i]); return <>{displayedText ? displayedText : text}; }