From 9c46acc793df3573e6fbcf53ac3e46663494e410 Mon Sep 17 00:00:00 2001 From: Taylor Mullen Date: Thu, 15 May 2025 22:56:03 -0700 Subject: Refactor: Improve UI rendering and address code review comments This commit addresses several code review comments primarily focused on improving the rendering and stability of the CLI UI. Key changes include: - Passing `isPending` and `availableTerminalHeight` props to `MarkdownDisplay` to enable more intelligent rendering of content, especially for pending messages and code blocks. - Adjusting height calculations in `ToolGroupMessage` and `ToolMessage` to more accurately reflect available space. - Refining the logic in `App.tsx` for measuring and utilizing terminal height, including renaming `footerRef` to `mainControlsRef` for clarity. - Ensuring consistent prop drilling for `isPending` and `availableTerminalHeight` through `HistoryItemDisplay`, `GeminiMessage`, and `GeminiMessageContent`. - In `MarkdownDisplay`, when `isPending` is true and content exceeds `availableTerminalHeight`, the code block will now be truncated with a "... generating more ..." message. If there's insufficient space even for the message, a simpler "... code is being written ..." will be shown. --- packages/cli/src/ui/components/HistoryItemDisplay.tsx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'packages/cli/src/ui/components/HistoryItemDisplay.tsx') diff --git a/packages/cli/src/ui/components/HistoryItemDisplay.tsx b/packages/cli/src/ui/components/HistoryItemDisplay.tsx index bd35d335..0a5ba7d1 100644 --- a/packages/cli/src/ui/components/HistoryItemDisplay.tsx +++ b/packages/cli/src/ui/components/HistoryItemDisplay.tsx @@ -17,18 +17,30 @@ import { Box } from 'ink'; interface HistoryItemDisplayProps { item: HistoryItem; availableTerminalHeight: number; + isPending: boolean; } export const HistoryItemDisplay: React.FC = ({ item, availableTerminalHeight, + isPending, }) => ( {/* Render standard message types */} {item.type === 'user' && } - {item.type === 'gemini' && } + {item.type === 'gemini' && ( + + )} {item.type === 'gemini_content' && ( - + )} {item.type === 'info' && } {item.type === 'error' && } -- cgit v1.2.3