summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/App.tsx
diff options
context:
space:
mode:
authorJacob Richman <[email protected]>2025-05-23 10:25:17 -0700
committerGitHub <[email protected]>2025-05-23 10:25:17 -0700
commit91ee02898a7d0fad1e5a6c72492a91a60515bed7 (patch)
treee883fa871799356ea0cb898d9bc9171c126eee95 /packages/cli/src/ui/App.tsx
parente9931816284aa7a2dbb8e97fa392a9c563425e2c (diff)
feat: Modify loading indicator to support a paused state (#506)
Diffstat (limited to 'packages/cli/src/ui/App.tsx')
-rw-r--r--packages/cli/src/ui/App.tsx16
1 files changed, 14 insertions, 2 deletions
diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx
index 4921c93e..ac36b87c 100644
--- a/packages/cli/src/ui/App.tsx
+++ b/packages/cli/src/ui/App.tsx
@@ -182,8 +182,17 @@ export const App = ({
handleSlashCommand,
shellModeActive,
);
- const { elapsedTime, currentLoadingPhrase } =
- useLoadingIndicator(streamingState);
+ const isPausedForConfirmation = useMemo(
+ () =>
+ pendingHistoryItems.some(
+ (item) =>
+ item?.type === 'tool_group' &&
+ item.tools.some((tool) => tool.status === 'Confirming'),
+ ),
+ [pendingHistoryItems],
+ );
+ const { elapsedTime, currentLoadingPhrase, shouldShowSpinner } =
+ useLoadingIndicator(streamingState, isPausedForConfirmation);
const showAutoAcceptIndicator = useAutoAcceptIndicator({ config });
const handleFinalSubmit = useCallback(
@@ -302,6 +311,7 @@ export const App = ({
key={h.id}
item={h}
isPending={false}
+ streamingState={streamingState}
/>
)),
]}
@@ -317,6 +327,7 @@ export const App = ({
// HistoryItemDisplay. Refactor later. Use a fake id for now.
item={{ ...item, id: 0 }}
isPending={true}
+ streamingState={streamingState}
/>
))}
</Box>
@@ -356,6 +367,7 @@ export const App = ({
<>
<LoadingIndicator
isLoading={streamingState === StreamingState.Responding}
+ showSpinner={shouldShowSpinner}
currentLoadingPhrase={currentLoadingPhrase}
elapsedTime={elapsedTime}
/>