From 1b190524e534a43492ec2e35b8e8eacb21fdb5f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E9=98=BF=E6=B1=9F=28Relakkes?= =?UTF-8?q?=29?= Date: Tue, 7 Apr 2026 12:12:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20official=20preset=20add=20button=20?= =?UTF-8?q?=E2=80=94=20write=20settings.json=20first,=20handle=20errors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- desktop/src/pages/Settings.tsx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/desktop/src/pages/Settings.tsx b/desktop/src/pages/Settings.tsx index c6fe8246..8c692bea 100644 --- a/desktop/src/pages/Settings.tsx +++ b/desktop/src/pages/Settings.tsx @@ -255,13 +255,7 @@ function ProviderFormModal({ open, onClose, mode, provider }: ProviderFormProps) if (!canSubmit) return setIsSubmitting(true) try { - if (isOfficial) { - await useProviderStore.getState().activateOfficial() - await fetchSettings() - onClose() - return - } - // Write the edited settings.json directly + // Write the edited settings.json first (for all presets including official) if (settingsJson.trim()) { try { const parsed = JSON.parse(settingsJson) @@ -272,6 +266,17 @@ function ProviderFormModal({ open, onClose, mode, provider }: ProviderFormProps) } } + if (isOfficial) { + try { + await useProviderStore.getState().activateOfficial() + await fetchSettings() + } catch (err) { + console.error('Failed to activate official:', err) + } + onClose() + return + } + if (mode === 'create') { await createProvider({ presetId: selectedPreset.id,