diff options
| author | Taylor Mullen <[email protected]> | 2025-05-15 22:56:03 -0700 |
|---|---|---|
| committer | N. Taylor Mullen <[email protected]> | 2025-05-15 22:57:28 -0700 |
| commit | 9c46acc793df3573e6fbcf53ac3e46663494e410 (patch) | |
| tree | 82c40d365c60f5e578a7548c65a15cb6e4838ccd /packages/cli/src/ui/components/HistoryItemDisplay.tsx | |
| parent | 33743d347b6721f8eec537d01ad9f6a95b4c6683 (diff) | |
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.
Diffstat (limited to 'packages/cli/src/ui/components/HistoryItemDisplay.tsx')
| -rw-r--r-- | packages/cli/src/ui/components/HistoryItemDisplay.tsx | 16 |
1 files changed, 14 insertions, 2 deletions
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<HistoryItemDisplayProps> = ({ item, availableTerminalHeight, + isPending, }) => ( <Box flexDirection="column" key={item.id}> {/* Render standard message types */} {item.type === 'user' && <UserMessage text={item.text} />} - {item.type === 'gemini' && <GeminiMessage text={item.text} />} + {item.type === 'gemini' && ( + <GeminiMessage + text={item.text} + isPending={isPending} + availableTerminalHeight={availableTerminalHeight} + /> + )} {item.type === 'gemini_content' && ( - <GeminiMessageContent text={item.text} /> + <GeminiMessageContent + text={item.text} + isPending={isPending} + availableTerminalHeight={availableTerminalHeight} + /> )} {item.type === 'info' && <InfoMessage text={item.text} />} {item.type === 'error' && <ErrorMessage text={item.text} />} |
