/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { Box } from 'ink'; import { Header } from './Header.js'; import { Tips } from './Tips.js'; import { UserIdentity } from './UserIdentity.js'; import { useSettings } from '../contexts/SettingsContext.js'; import { useConfig } from '../contexts/ConfigContext.js'; import { useUIState } from '../contexts/UIStateContext.js'; import { Banner } from './Banner.js'; import { useBanner } from '../hooks/useBanner.js'; import { useTips } from '../hooks/useTips.js'; interface AppHeaderProps { version: string; } export const AppHeader = ({ version }: AppHeaderProps) => { const settings = useSettings(); const config = useConfig(); const { nightly, terminalWidth, bannerData, bannerVisible } = useUIState(); const { bannerText } = useBanner(bannerData, config); const { showTips } = useTips(); return ( {!(settings.merged.ui.hideBanner || config.getScreenReader()) && ( <>
{bannerVisible && bannerText && ( )} )} {settings.merged.ui.showUserIdentity !== false && ( )} {!(settings.merged.ui.hideTips || config.getScreenReader()) && showTips && } ); };