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 && (