claude-code-best/packages/@ant/ink/src/theme/Spinner.tsx
claude-code-best f8480358ca style: 格式化 packages/@ant/ 下所有文件以通过 biome ci
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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>;
}