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.tsx16
1 files changed, 9 insertions, 7 deletions
diff --git a/packages/cli/src/ui/components/LoadingIndicator.tsx b/packages/cli/src/ui/components/LoadingIndicator.tsx
index b0c24f80..d24b6a56 100644
--- a/packages/cli/src/ui/components/LoadingIndicator.tsx
+++ b/packages/cli/src/ui/components/LoadingIndicator.tsx
@@ -8,36 +8,38 @@ import React from 'react';
import { Box, Text } from 'ink';
import Spinner from 'ink-spinner';
import { Colors } from '../colors.js';
+import { useStreamingContext } from '../contexts/StreamingContext.js';
+import { StreamingState } from '../types.js';
interface LoadingIndicatorProps {
- isLoading: boolean;
- showSpinner: boolean;
currentLoadingPhrase: string;
elapsedTime: number;
rightContent?: React.ReactNode;
}
export const LoadingIndicator: React.FC<LoadingIndicatorProps> = ({
- isLoading,
- showSpinner,
currentLoadingPhrase,
elapsedTime,
rightContent,
}) => {
- if (!isLoading) {
+ const { streamingState } = useStreamingContext();
+
+ if (streamingState === StreamingState.Idle) {
return null;
}
return (
<Box marginTop={1} paddingLeft={0}>
- {showSpinner && (
+ {streamingState === StreamingState.Responding && (
<Box marginRight={1}>
<Spinner type="dots" />
</Box>
)}
<Text color={Colors.AccentPurple}>
{currentLoadingPhrase}
- {isLoading && ` (esc to cancel, ${elapsedTime}s)`}
+ {streamingState === StreamingState.WaitingForConfirmation
+ ? ''
+ : ` (esc to cancel, ${elapsedTime}s)`}
</Text>
<Box flexGrow={1}>{/* Spacer */}</Box>
{rightContent && <Box>{rightContent}</Box>}