diff options
Diffstat (limited to 'packages/cli/src/ui/components/LoadingIndicator.tsx')
| -rw-r--r-- | packages/cli/src/ui/components/LoadingIndicator.tsx | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/packages/cli/src/ui/components/LoadingIndicator.tsx b/packages/cli/src/ui/components/LoadingIndicator.tsx new file mode 100644 index 00000000..8a3f9b5e --- /dev/null +++ b/packages/cli/src/ui/components/LoadingIndicator.tsx @@ -0,0 +1,32 @@ +import React from 'react'; +import { Box, Text } from 'ink'; +import Spinner from 'ink-spinner'; + +interface LoadingIndicatorProps { + isLoading: boolean; + currentLoadingPhrase: string; + elapsedTime: number; +} + +const LoadingIndicator: React.FC<LoadingIndicatorProps> = ({ + isLoading, + currentLoadingPhrase, + elapsedTime, +}) => { + if (!isLoading) { + return null; // Don't render anything if not loading + } + + return ( + <Box marginTop={1} paddingLeft={0}> + <Box marginRight={1}> + <Spinner type="dots" /> + </Box> + <Text color="cyan">{currentLoadingPhrase} ({elapsedTime}s)</Text> + <Box flexGrow={1}>{/* Spacer */}</Box> + <Text color="gray">(ESC to cancel)</Text> + </Box> + ); +}; + +export default LoadingIndicator;
\ No newline at end of file |
