diff --git a/src/cli/ui/components/sidebar/MissionControl.tsx b/src/cli/ui/components/sidebar/MissionControl.tsx index fd68624e..ad420e5e 100644 --- a/src/cli/ui/components/sidebar/MissionControl.tsx +++ b/src/cli/ui/components/sidebar/MissionControl.tsx @@ -6,6 +6,12 @@ import { useUIStore } from '../../store/context.js'; export const MissionControl: React.FC = () => { const { state } = useUIStore(); + const maxVisible = 8; + const visibleTasks = React.useMemo( + () => state.missionTasks.slice(0, Math.max(0, maxVisible)), + [state.missionTasks], + ); + return ( @@ -17,19 +23,29 @@ export const MissionControl: React.FC = () => { No active tasks. ) : ( - state.missionTasks.map((task) => ( - - - {task.status === 'completed' ? '[x] ' : '[ ] '} - - - {task.content} - - - )) + <> + {visibleTasks.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'} + + + )} + )}