Files
claude-code/packages/@ant/ink/src/theme/Spinner.tsx
2026-05-01 21:55:51 +08:00

21 lines
528 B
TypeScript

import React, { useState, useEffect } from 'react';
import { Text } from '../index.js';
const FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
/**
* A simple animated spinner for loading states.
*/
export function Spinner(): React.ReactNode {
const [frame, setFrame] = useState(0);
useEffect(() => {
const timer = setInterval(() => {
setFrame(f => (f + 1) % FRAMES.length);
}, 80);
return () => clearInterval(timer);
}, []);
return <Text>{FRAMES[frame]}</Text>;
}