From 39ecccdbdf71d3d1f4f52d9bd40f593af62a59af Mon Sep 17 00:00:00 2001 From: saladday <1203511142@qq.com> Date: Mon, 8 Jun 2026 05:38:20 +0800 Subject: [PATCH] Consolidate managed account entry points --- .../providers/AddProviderDialog.tsx | 38 ++- .../providers/AuthSettingsPanel.tsx | 24 ++ .../providers/EditProviderDialog.tsx | 37 ++- .../forms/ClaudeDesktopProviderForm.tsx | 15 ++ .../providers/forms/ClaudeFormFields.tsx | 16 ++ .../providers/forms/CodexFormFields.tsx | 9 + .../providers/forms/CodexOAuthSection.tsx | 159 ++++++++----- .../providers/forms/CopilotAuthSection.tsx | 223 +++++++++++------- .../providers/forms/ProviderForm.tsx | 22 +- src/components/settings/AuthCenterPanel.tsx | 42 +++- 10 files changed, 422 insertions(+), 163 deletions(-) create mode 100644 src/components/providers/AuthSettingsPanel.tsx diff --git a/src/components/providers/AddProviderDialog.tsx b/src/components/providers/AddProviderDialog.tsx index 04f41a16f..de6d03b85 100644 --- a/src/components/providers/AddProviderDialog.tsx +++ b/src/components/providers/AddProviderDialog.tsx @@ -12,6 +12,7 @@ import { ProviderForm, type ProviderFormValues, } from "@/components/providers/forms/ProviderForm"; +import { AuthSettingsPanel } from "@/components/providers/AuthSettingsPanel"; import { UniversalProviderFormModal } from "@/components/universal/UniversalProviderFormModal"; import { UniversalProviderPanel } from "@/components/universal"; import { providerPresets } from "@/config/claudeProviderPresets"; @@ -21,6 +22,7 @@ import { claudeDesktopProviderPresets } from "@/config/claudeDesktopProviderPres import { extractCodexBaseUrl } from "@/utils/providerConfigUtils"; import type { OpenClawSuggestedDefaults } from "@/config/openclawProviderPresets"; import type { UniversalProviderPreset } from "@/config/universalProviderPresets"; +import type { ManagedAuthProvider } from "@/lib/api"; interface AddProviderDialogProps { open: boolean; @@ -55,6 +57,21 @@ export function AddProviderDialog({ const [selectedUniversalPreset, setSelectedUniversalPreset] = useState(null); const [isFormSubmitting, setIsFormSubmitting] = useState(false); + const [authSettingsTarget, setAuthSettingsTarget] = + useState(null); + + const closeDialog = useCallback(() => { + setAuthSettingsTarget(null); + onOpenChange(false); + }, [onOpenChange]); + + const handlePanelClose = useCallback(() => { + if (authSettingsTarget) { + setAuthSettingsTarget(null); + return; + } + closeDialog(); + }, [authSettingsTarget, closeDialog]); const handleUniversalProviderSave = useCallback( async (provider: UniversalProvider) => { @@ -272,9 +289,9 @@ export function AddProviderDialog({ } await onSubmit(providerData); - onOpenChange(false); + closeDialog(); }, - [appId, onSubmit, onOpenChange], + [appId, onSubmit, closeDialog], ); const footer = @@ -282,7 +299,7 @@ export function AddProviderDialog({ <> + )} + + ) : ( + accountSelect + )} + + {mode === "manage" && onFastModeChange && (