fix(auth): do not blindly default to API key auth (#3235)

Co-authored-by: matt korwel <matt.korwel@gmail.com>
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
This commit is contained in:
Pascal Birchler
2025-07-09 00:10:36 +02:00
committed by GitHub
parent 0506b40a39
commit c8cf954e6e
3 changed files with 69 additions and 24 deletions

View File

@@ -24,7 +24,11 @@ export function AuthDialog({
initialErrorMessage,
}: AuthDialogProps): React.JSX.Element {
const [errorMessage, setErrorMessage] = useState<string | null>(
initialErrorMessage || null,
initialErrorMessage
? initialErrorMessage
: process.env.GEMINI_API_KEY
? 'Existing API key detected (GEMINI_API_KEY). Select "Gemini API Key" option to use it.'
: null,
);
const items = [
{
@@ -46,13 +50,17 @@ export function AuthDialog({
{ label: 'Vertex AI', value: AuthType.USE_VERTEX_AI },
];
let initialAuthIndex = items.findIndex(
(item) => item.value === settings.merged.selectedAuthType,
);
const initialAuthIndex = items.findIndex((item) => {
if (settings.merged.selectedAuthType) {
return item.value === settings.merged.selectedAuthType;
}
if (initialAuthIndex === -1) {
initialAuthIndex = 0;
}
if (process.env.GEMINI_API_KEY) {
return item.value === AuthType.USE_GEMINI;
}
return item.value === AuthType.LOGIN_WITH_GOOGLE;
});
const handleAuthSelect = (authMethod: AuthType) => {
const error = validateAuthMethod(authMethod);
@@ -90,13 +98,18 @@ export function AuthDialog({
padding={1}
width="100%"
>
<Text bold>Select Auth Method</Text>
<RadioButtonSelect
items={items}
initialIndex={initialAuthIndex}
onSelect={handleAuthSelect}
isFocused={true}
/>
<Text bold>Get started</Text>
<Box marginTop={1}>
<Text>How would you like to authenticate for this project?</Text>
</Box>
<Box marginTop={1}>
<RadioButtonSelect
items={items}
initialIndex={initialAuthIndex}
onSelect={handleAuthSelect}
isFocused={true}
/>
</Box>
{errorMessage && (
<Box marginTop={1}>
<Text color={Colors.AccentRed}>{errorMessage}</Text>