From 035ee8e32c1022a4d48f9528efea1ab36e1dafe3 Mon Sep 17 00:00:00 2001 From: Haze <709547807@qq.com> Date: Mon, 18 May 2026 19:17:27 +0800 Subject: [PATCH] feat(provider): add option to hide OAuth UI in Add Provider dialog (#1036) --- src/components/settings/ProvidersSettings.tsx | 11 ++++++++--- src/lib/providers.ts | 3 +++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/components/settings/ProvidersSettings.tsx b/src/components/settings/ProvidersSettings.tsx index 2ab18f3..b71c736 100644 --- a/src/components/settings/ProvidersSettings.tsx +++ b/src/components/settings/ProvidersSettings.tsx @@ -1018,6 +1018,7 @@ function AddProviderDialog({ : providerDocsUrl; const isOAuth = typeInfo?.isOAuth ?? false; const supportsApiKey = typeInfo?.supportsApiKey ?? false; + const oauthUiHidden = typeInfo?.hideOAuthUi ?? false; const vendorMap = new Map(vendors.map((vendor) => [vendor.id, vendor])); const selectedVendor = selectedType ? vendorMap.get(selectedType) : undefined; const showUserAgentInAddDialog = shouldShowUserAgentFieldForNewProvider(selectedType); @@ -1027,14 +1028,18 @@ function AddProviderDialog({ ? 'oauth_device' : null); // Effective OAuth mode: pure OAuth providers, or dual-mode with oauth selected - const useOAuthFlow = isOAuth && (!supportsApiKey || authMode === 'oauth'); + const useOAuthFlow = isOAuth && !oauthUiHidden && (!supportsApiKey || authMode === 'oauth'); useEffect(() => { if (!selectedVendor || !isOAuth || !supportsApiKey) { return; } + if (oauthUiHidden) { + setAuthMode('apikey'); + return; + } setAuthMode(selectedVendor.defaultAuthMode === 'api_key' ? 'apikey' : 'oauth'); - }, [selectedVendor, isOAuth, supportsApiKey]); + }, [selectedVendor, isOAuth, supportsApiKey, oauthUiHidden]); useEffect(() => { if (selectedType !== 'ark') { @@ -1369,7 +1374,7 @@ function AddProviderDialog({ {/* Auth mode toggle for providers supporting both */} - {isOAuth && supportsApiKey && ( + {isOAuth && supportsApiKey && !oauthUiHidden && (