UNPKG

khamba

Version:

A cli tool for sharing files through local network.

36 lines (35 loc) 1.69 kB
import React, { useState, useEffect } from 'react'; import { Text } from 'ink'; const WaveAnimation = ({ speed = 250 }) => { const [waveStage, setWaveStage] = useState(0); useEffect(() => { const interval = setInterval(() => { setWaveStage(prevStage => (prevStage + 1) % 3); }, speed); return () => clearInterval(interval); }, []); const renderWave = () => { switch (waveStage) { case 0: return (React.createElement(Text, { color: 'magenta', bold: true }, "\u2800\u2800\u2800\u2027\u2800\u2800\u2800")); case 1: return (React.createElement(Text, null, "\u2800", React.createElement(Text, { color: 'redBright', bold: true }, "\uFE59"), React.createElement(Text, { color: 'magentaBright', bold: true }, "\u2027"), React.createElement(Text, { color: 'redBright', bold: true }, "\uFE5A"), "\u2800")); case 2: return (React.createElement(Text, null, React.createElement(Text, { color: 'red', bold: true }, "("), React.createElement(Text, { color: 'redBright', bold: true }, "\uFE59"), React.createElement(Text, { color: 'magenta', bold: true }, "\u2027"), React.createElement(Text, { color: 'redBright', bold: true }, "\uFE5A"), React.createElement(Text, { color: 'red', bold: true }, ")"))); default: return null; } }; return React.createElement(Text, null, renderWave()); }; export default WaveAnimation;