/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import type React from 'react'; import { Text } from 'ink'; import { theme } from '../semantic-colors.js'; import { useUIState } from '../contexts/UIStateContext.js'; import { useSettings } from '../contexts/SettingsContext.js'; import { useConfig } from '../contexts/ConfigContext.js'; import { ContextSummaryDisplay } from './ContextSummaryDisplay.js'; import { HookStatusDisplay } from './HookStatusDisplay.js'; interface StatusDisplayProps { hideContextSummary: boolean; } export const StatusDisplay: React.FC = ({ hideContextSummary, }) => { const uiState = useUIState(); const settings = useSettings(); const config = useConfig(); if (process.env['GEMINI_SYSTEM_MD']) { return |⌐■_■|; } if (uiState.ctrlCPressedOnce) { return ( Press Ctrl+C again to exit. ); } if (uiState.warningMessage) { return {uiState.warningMessage}; } if (uiState.ctrlDPressedOnce) { return ( Press Ctrl+D again to exit. ); } if (uiState.showEscapePrompt) { return Press Esc again to rewind.; } if (uiState.queueErrorMessage) { return {uiState.queueErrorMessage}; } if ( uiState.activeHooks.length > 0 && (settings.merged.hooks?.notifications ?? true) ) { return ; } if (!settings.merged.ui?.hideContextSummary && !hideContextSummary) { return ( ); } return null; };