From 1c7bb79b19a836b9354b02041daa097ca8fe7a80 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sat, 5 Sep 2026 21:56:23 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20Prevent=20sidebar=20l?= =?UTF-8?q?ayout=20overflow=20for=20long=20text=20and=20lists?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cli/ui/components/sidebar/FileContext.tsx | 27 ++++++++++--- .../ui/components/sidebar/MissionControl.tsx | 40 +++++++++++++------ 2 files changed, 48 insertions(+), 19 deletions(-) diff --git a/src/cli/ui/components/sidebar/FileContext.tsx b/src/cli/ui/components/sidebar/FileContext.tsx index badf6f1c..a9043c6f 100644 --- a/src/cli/ui/components/sidebar/FileContext.tsx +++ b/src/cli/ui/components/sidebar/FileContext.tsx @@ -5,6 +5,7 @@ import { useUIStore } from '../../store/context.js'; export const FileContext: React.FC = () => { const { state } = useUIStore(); + const maxVisible = 5; return ( @@ -17,12 +18,26 @@ export const FileContext: React.FC = () => { No changes detected. ) : ( - state.changedFiles.map((file) => ( - - M - {file} - - )) + <> + {state.changedFiles.slice(0, maxVisible).map((file) => ( + + M + + + {file} + + + + ))} + {state.changedFiles.length > maxVisible && ( + + + ... and {state.changedFiles.length - maxVisible} more file + {state.changedFiles.length - maxVisible === 1 ? '' : 's'} + + + )} + )} diff --git a/src/cli/ui/components/sidebar/MissionControl.tsx b/src/cli/ui/components/sidebar/MissionControl.tsx index fd68624e..ae53283a 100644 --- a/src/cli/ui/components/sidebar/MissionControl.tsx +++ b/src/cli/ui/components/sidebar/MissionControl.tsx @@ -5,6 +5,7 @@ import { useUIStore } from '../../store/context.js'; export const MissionControl: React.FC = () => { const { state } = useUIStore(); + const maxVisible = 5; return ( @@ -17,19 +18,32 @@ export const MissionControl: React.FC = () => { No active tasks. ) : ( - state.missionTasks.map((task) => ( - - - {task.status === 'completed' ? '[x] ' : '[ ] '} - - - {task.content} - - - )) + <> + {state.missionTasks.slice(0, maxVisible).map((task) => ( + + + {task.status === 'completed' ? '[x] ' : '[ ] '} + + + + {task.content} + + + + ))} + {state.missionTasks.length > maxVisible && ( + + + ... and {state.missionTasks.length - maxVisible} more task + {state.missionTasks.length - maxVisible === 1 ? '' : 's'} + + + )} + )}