From 738dd0645dcd39a1314ddc38728c53ef844fc769 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Mon, 22 Dec 2025 15:45:55 +0000 Subject: [PATCH] Revert "Revert "Sync provider settings with settings.yml in config UI"" (#5273) Reverts Stirling-Tools/Stirling-PDF#5271 --- .../shared/config/configSections/ProviderCard.tsx | 14 +++++++++++--- .../configSections/AdminConnectionsSection.tsx | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/frontend/src/core/components/shared/config/configSections/ProviderCard.tsx b/frontend/src/core/components/shared/config/configSections/ProviderCard.tsx index 3d07338ac..15eaadb41 100644 --- a/frontend/src/core/components/shared/config/configSections/ProviderCard.tsx +++ b/frontend/src/core/components/shared/config/configSections/ProviderCard.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { Paper, Group, Text, Button, Collapse, Stack, TextInput, Textarea, Switch, PasswordInput } from '@mantine/core'; import { useTranslation } from 'react-i18next'; import LocalIcon from '@app/components/shared/LocalIcon'; @@ -25,14 +25,22 @@ export default function ProviderCard({ const [expanded, setExpanded] = useState(false); const [localSettings, setLocalSettings] = useState>(settings); + // Keep local settings in sync with incoming settings (values loaded from settings.yml) + useEffect(() => { + if (!expanded) { + setLocalSettings(settings); + } + }, [settings, expanded]); + // Initialize local settings with defaults when opening an unconfigured provider const handleConnectToggle = () => { if (!isConfigured && !expanded) { // First time opening an unconfigured provider - initialize with defaults - const defaultSettings: Record = {}; + // while preserving any values already present (from settings.yml) + const defaultSettings: Record = { ...settings }; provider.fields.forEach((field) => { if (field.defaultValue !== undefined) { - defaultSettings[field.key] = field.defaultValue; + defaultSettings[field.key] = defaultSettings[field.key] ?? field.defaultValue; } }); setLocalSettings(defaultSettings); diff --git a/frontend/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx b/frontend/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx index bbb19380a..6718b09f2 100644 --- a/frontend/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx +++ b/frontend/src/proprietary/components/shared/config/configSections/AdminConnectionsSection.tsx @@ -422,6 +422,7 @@ export default function AdminConnectionsSection() { key={provider.id} provider={provider} isConfigured={false} + settings={getProviderSettings(provider)} onSave={(providerSettings) => handleProviderSave(provider, providerSettings)} disabled={!loginEnabled} />