mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-15 06:12:50 -07:00
4561d41720
Co-authored-by: Jacob Richman <jacob314@gmail.com>
59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import { type Config } from '@google/gemini-cli-core';
|
|
import { Box, Text } from 'ink';
|
|
import { theme } from '../semantic-colors.js';
|
|
import { useKeypress } from '../hooks/useKeypress.js';
|
|
import { relaunchApp } from '../../utils/processUtils.js';
|
|
|
|
interface LoginWithGoogleRestartDialogProps {
|
|
onDismiss: () => void;
|
|
config: Config;
|
|
}
|
|
|
|
export const LoginWithGoogleRestartDialog = ({
|
|
onDismiss,
|
|
config,
|
|
}: LoginWithGoogleRestartDialogProps) => {
|
|
useKeypress(
|
|
(key) => {
|
|
if (key.name === 'escape') {
|
|
onDismiss();
|
|
return true;
|
|
} else if (key.name === 'r' || key.name === 'R') {
|
|
setTimeout(async () => {
|
|
if (process.send) {
|
|
const remoteSettings = config.getRemoteAdminSettings();
|
|
if (remoteSettings) {
|
|
process.send({
|
|
type: 'admin-settings-update',
|
|
settings: remoteSettings,
|
|
});
|
|
}
|
|
}
|
|
await relaunchApp();
|
|
}, 100);
|
|
return true;
|
|
}
|
|
return false;
|
|
},
|
|
{ isActive: true },
|
|
);
|
|
|
|
const message =
|
|
"You've successfully signed in with Google. Gemini CLI needs to be restarted.";
|
|
|
|
return (
|
|
<Box borderStyle="round" borderColor={theme.status.warning} paddingX={1}>
|
|
<Text color={theme.status.warning}>
|
|
{message} Press R to restart, or Esc to choose a different
|
|
authentication method.
|
|
</Text>
|
|
</Box>
|
|
);
|
|
};
|