import React, { FC, useEffect, useState } from 'react';
import { Box, Text } from 'ink';
const Spinner: FC<{ type?: keyof typeof spinners }> = ({ type = 'countdown' }) => {
const { interval, frames } = spinners[type];
const [i, setI] = useState(0);
useEffect(() => {
const _ = setInterval(() => {
setI(v => (v < frames.length - 1) ? v + 1 : 0)
}, interval)
return () => clearInterval(_);
}, [])
return frames[i]
}
const spinners = {
countdown: {
interval: 80,
frames: [
{' '}
,
{' '}
,
{' '}
,
{' '}
,
{' '}
,
{' '}
{' '}
,
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
,
{' '}
{' '}
,
{' '}
,
{' '}
,
{' '}
,
{' '}
,
{' '}
,
{' '}
,
{' '}
{' '}
,
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
{' '}
,
{' '}
{' '}
{' '}
,
{' '}
{' '}
,
{' '}
,
]
}
}
export default Spinner;