Rainbow = () => {
const [counter, setCounter] = React.useState(0);
React.useEffect(() => {
const loop = () => {
setCounter(c => c + 1);
setTimeout(loop, 100);
};
loop();
}, []);
const greeting = "lol @ react";
const rainbow = [
"#FF0000",
"#FF7F00",
"#FFFF00",
"#00FF00",
"#0000FF",
"#7A00E5",
"#D300C9"
];
const rainbowGreeting = greeting.split("").map((letter, index) => {
const color = rainbow[(index + counter) & rainbow.length];
return h("span", { style: { color }, key: index }, letter);
});
return h("h1", null, rainbowGreeting);
}