diff --git a/packages/cli/src/ui/components/AppHeader.tsx b/packages/cli/src/ui/components/AppHeader.tsx index aaa16e86a5..25ef20c963 100644 --- a/packages/cli/src/ui/components/AppHeader.tsx +++ b/packages/cli/src/ui/components/AppHeader.tsx @@ -5,8 +5,7 @@ */ import { Box, Text } from 'ink'; -import { useEffect, useMemo, useState } from 'react'; -import { UserAccountManager, AuthType } from '@google/gemini-cli-core'; +import { UserIdentity } from './UserIdentity.js'; import { Tips } from './Tips.js'; import { useSettings } from '../contexts/SettingsContext.js'; import { useConfig } from '../contexts/ConfigContext.js'; @@ -36,20 +35,6 @@ export const AppHeader = ({ version, showDetails = true }: AppHeaderProps) => { const { bannerText } = useBanner(bannerData); const { showTips } = useTips(); - const authType = config.getContentGeneratorConfig()?.authType; - const [email, setEmail] = useState(); - - useEffect(() => { - if (authType) { - const userAccountManager = new UserAccountManager(); - // Even though the current implementation of getCachedGoogleAccount is sync, - // it performs file I/O. Moving it to useEffect ensures it doesn't block the render cycle. - setEmail(userAccountManager.getCachedGoogleAccount() ?? undefined); - } - }, [authType]); - - const tierName = useMemo(() => config.getUserTierName(), [config]); - const showHeader = !( settings.merged.ui.hideBanner || config.getScreenReader() ); @@ -107,24 +92,11 @@ export const AppHeader = ({ version, showDetails = true }: AppHeaderProps) => { {/* Line 2: Blank */} - {/* Line 3: User Email /auth */} + {/* Lines 3 & 4: User Identity info (Email /auth and Plan /upgrade) */} - - {authType === AuthType.LOGIN_WITH_GOOGLE ? ( - {email ?? 'Logged in with Google'} - ) : ( - `Authenticated with ${authType}` - )} - - /auth - - - {/* Line 4: Tier Name /upgrade */} - - - {tierName ?? 'Gemini Code Assist for individuals'} - - /upgrade + {settings.merged.ui.showUserIdentity !== false && ( + + )}