summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/components/LoadingIndicator.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/components/LoadingIndicator.tsx')
-rw-r--r--packages/cli/src/ui/components/LoadingIndicator.tsx32
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