feat(ui): show AIStudio models for virtual auth files and adjust Gemini OAuth spacing

This commit is contained in:
LTbinglingfeng
2026-01-02 22:42:20 +08:00
parent 2ae06a8860
commit 8232812ac2
3 changed files with 59 additions and 45 deletions

View File

@@ -719,6 +719,8 @@ export function AuthFilesPage() {
const renderFileCard = (item: AuthFileItem) => { const renderFileCard = (item: AuthFileItem) => {
const fileStats = resolveAuthFileStats(item, keyStats); const fileStats = resolveAuthFileStats(item, keyStats);
const isRuntimeOnly = isRuntimeOnlyAuthFile(item); const isRuntimeOnly = isRuntimeOnlyAuthFile(item);
const isAistudio = (item.type || '').toLowerCase() === 'aistudio';
const showModelsButton = !isRuntimeOnly || isAistudio;
const typeColor = getTypeColor(item.type || 'unknown'); const typeColor = getTypeColor(item.type || 'unknown');
return ( return (
@@ -755,10 +757,7 @@ export function AuthFilesPage() {
{renderStatusBar(item)} {renderStatusBar(item)}
<div className={styles.cardActions}> <div className={styles.cardActions}>
{isRuntimeOnly ? ( {showModelsButton && (
<div className={styles.virtualBadge}>{t('auth_files.type_virtual') || '虚拟认证文件'}</div>
) : (
<>
<Button <Button
variant="secondary" variant="secondary"
size="sm" size="sm"
@@ -769,6 +768,9 @@ export function AuthFilesPage() {
> >
<IconBot className={styles.actionIcon} size={16} /> <IconBot className={styles.actionIcon} size={16} />
</Button> </Button>
)}
{!isRuntimeOnly && (
<>
<Button <Button
variant="secondary" variant="secondary"
size="sm" size="sm"
@@ -805,6 +807,9 @@ export function AuthFilesPage() {
</Button> </Button>
</> </>
)} )}
{isRuntimeOnly && (
<div className={styles.virtualBadge}>{t('auth_files.type_virtual') || '虚拟认证文件'}</div>
)}
</div> </div>
</div> </div>
); );

View File

@@ -115,6 +115,13 @@
margin-top: $spacing-sm; margin-top: $spacing-sm;
} }
.geminiProjectField {
:global(.form-group) {
margin-top: $spacing-sm;
gap: $spacing-sm;
}
}
.filePicker { .filePicker {
display: flex; display: flex;
align-items: center; align-items: center;

View File

@@ -327,6 +327,7 @@ export function OAuthPage() {
> >
<div className="hint">{t(provider.hintKey)}</div> <div className="hint">{t(provider.hintKey)}</div>
{provider.id === 'gemini-cli' && ( {provider.id === 'gemini-cli' && (
<div className={styles.geminiProjectField}>
<Input <Input
label={t('auth_login.gemini_cli_project_id_label')} label={t('auth_login.gemini_cli_project_id_label')}
hint={t('auth_login.gemini_cli_project_id_hint')} hint={t('auth_login.gemini_cli_project_id_hint')}
@@ -340,6 +341,7 @@ export function OAuthPage() {
} }
placeholder={t('auth_login.gemini_cli_project_id_placeholder')} placeholder={t('auth_login.gemini_cli_project_id_placeholder')}
/> />
</div>
)} )}
{state.url && ( {state.url && (
<div className={`connection-box ${styles.authUrlBox}`}> <div className={`connection-box ${styles.authUrlBox}`}>