From 05a49702d888bee912682f78c3993d98f7f9d628 Mon Sep 17 00:00:00 2001 From: Jacob Richman Date: Wed, 28 May 2025 18:17:19 +0000 Subject: Refactor: Add GeminiRespondingSpinner to make use of streamingState idiomatic (#583) --- .../cli/src/ui/components/messages/ToolMessage.tsx | 73 ++++++++++------------ 1 file changed, 32 insertions(+), 41 deletions(-) (limited to 'packages/cli/src/ui/components/messages/ToolMessage.tsx') diff --git a/packages/cli/src/ui/components/messages/ToolMessage.tsx b/packages/cli/src/ui/components/messages/ToolMessage.tsx index c8b61297..922f59d0 100644 --- a/packages/cli/src/ui/components/messages/ToolMessage.tsx +++ b/packages/cli/src/ui/components/messages/ToolMessage.tsx @@ -6,16 +6,11 @@ import React from 'react'; import { Box, Text } from 'ink'; -import Spinner from 'ink-spinner'; -import { - IndividualToolCallDisplay, - StreamingState, - ToolCallStatus, -} from '../../types.js'; +import { IndividualToolCallDisplay, ToolCallStatus } from '../../types.js'; import { DiffRenderer } from './DiffRenderer.js'; import { Colors } from '../../colors.js'; import { MarkdownDisplay } from '../../utils/MarkdownDisplay.js'; -import { useStreamingContext } from '../../contexts/StreamingContext.js'; +import { GeminiRespondingSpinner } from '../GeminiRespondingSpinner.js'; const STATIC_HEIGHT = 1; const RESERVED_LINE_COUNT = 5; // for tool name, status, padding etc. @@ -61,7 +56,6 @@ export const ToolMessage: React.FC = ({ return ( - {/* Status Indicator */} = ({ type ToolStatusIndicatorProps = { status: ToolCallStatus; }; + const ToolStatusIndicator: React.FC = ({ status, -}) => { - const { streamingState } = useStreamingContext(); - return ( - - {status === ToolCallStatus.Pending && ( - o - )} - {status === ToolCallStatus.Executing && - (streamingState === StreamingState.Responding ? ( - - ) : ( - // Paused spinner to avoid flicker. - - ))} - {status === ToolCallStatus.Success && ( - - )} - {status === ToolCallStatus.Confirming && ( - ? - )} - {status === ToolCallStatus.Canceled && ( - - - - - )} - {status === ToolCallStatus.Error && ( - - x - - )} - - ); -}; +}) => ( + + {status === ToolCallStatus.Pending && ( + o + )} + {status === ToolCallStatus.Executing && ( + + )} + {status === ToolCallStatus.Success && ( + + )} + {status === ToolCallStatus.Confirming && ( + ? + )} + {status === ToolCallStatus.Canceled && ( + + - + + )} + {status === ToolCallStatus.Error && ( + + x + + )} + +); type ToolInfo = { name: string; -- cgit v1.2.3