summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/components/messages/GeminiMessageContent.tsx
diff options
context:
space:
mode:
authorTaylor Mullen <[email protected]>2025-05-15 22:56:03 -0700
committerN. Taylor Mullen <[email protected]>2025-05-15 22:57:28 -0700
commit9c46acc793df3573e6fbcf53ac3e46663494e410 (patch)
tree82c40d365c60f5e578a7548c65a15cb6e4838ccd /packages/cli/src/ui/components/messages/GeminiMessageContent.tsx
parent33743d347b6721f8eec537d01ad9f6a95b4c6683 (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/messages/GeminiMessageContent.tsx')
-rw-r--r--packages/cli/src/ui/components/messages/GeminiMessageContent.tsx10
1 files changed, 9 insertions, 1 deletions
diff --git a/packages/cli/src/ui/components/messages/GeminiMessageContent.tsx b/packages/cli/src/ui/components/messages/GeminiMessageContent.tsx
index b9b85dc7..da6e468a 100644
--- a/packages/cli/src/ui/components/messages/GeminiMessageContent.tsx
+++ b/packages/cli/src/ui/components/messages/GeminiMessageContent.tsx
@@ -10,6 +10,8 @@ import { MarkdownDisplay } from '../../utils/MarkdownDisplay.js';
interface GeminiMessageContentProps {
text: string;
+ isPending: boolean;
+ availableTerminalHeight: number;
}
/*
@@ -20,13 +22,19 @@ interface GeminiMessageContentProps {
*/
export const GeminiMessageContent: React.FC<GeminiMessageContentProps> = ({
text,
+ isPending,
+ availableTerminalHeight,
}) => {
const originalPrefix = '✦ ';
const prefixWidth = originalPrefix.length;
return (
<Box flexDirection="column" paddingLeft={prefixWidth}>
- <MarkdownDisplay text={text} />
+ <MarkdownDisplay
+ text={text}
+ isPending={isPending}
+ availableTerminalHeight={availableTerminalHeight}
+ />
</Box>
);
};