"use client";
import { motion } from "motion/react";
import { useEffect, useState } from "react";
export function TypewriterText({
text,
className,
}: {
text: string;
className?: string;
}) {
const [displayed, setDisplayed] = useState(text[0] ?? "");
const [done, setDone] = useState(text.length <= 1);
useEffect(() => {
setDisplayed(text[0] ?? "");
setDone(text.length <= 1);
let i = 1;
const id = setInterval(() => {
if (i < text.length) {
setDisplayed(text.slice(0, i + 1));
i++;
} else {
clearInterval(id);
setDone(true);
}
}, 40);
return () => clearInterval(id);
}, [text]);
return (
<>
{text}
{displayed}
>
);
}