export const useTypewriter = (text, delay = 500) => {
const [display, setDisplay] = useState("");
const [index, setIndex] = useState(0);
useEffect(() => {
const timeoutId = setInterval(() => {
if (index < text.length) {
setDisplay((previous) => previous + text[index]);
setIndex((previous) => previous + 1);
}
}, delay);
return () => clearTimeout(timeoutId);
}, [text, delay, index]); // If I remove index here it'll print out the first letter over and over
return display;
};
export const useTypewriter = (text, delay = 500) => {
const [display, setDisplay] = useState("");
const [index, setIndex] = useState(0);
useEffect(() => {
const timeoutId = setInterval(() => {
if (index < text.length) {
setDisplay((previous) => previous + text[index]);
setIndex((previous) => previous + 1);
}
}, delay);
return () => clearTimeout(timeoutId);
}, [text, delay, index]); // If I remove index here it'll print out the first letter over and over
return display;
};