From eca14db58cbe2d7b0de8da5b55b68b977b88dd3a Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 18 Sep 2025 17:57:32 +0800 Subject: [PATCH] Revert "fix: improve VS Code config synchronization and code formatting" This reverts commit 463e430a3d1ea0f0c903959f21fb39a584926ec6. --- src/components/AppSwitcher.tsx | 4 +- src/components/JsonEditor.tsx | 2 +- src/components/ProviderForm.tsx | 83 ++++----- .../ProviderForm/ClaudeConfigEditor.tsx | 14 +- .../ProviderForm/CodexConfigEditor.tsx | 162 +++++------------- src/utils/errorUtils.ts | 2 +- src/utils/providerConfigUtils.ts | 34 ++-- 7 files changed, 106 insertions(+), 195 deletions(-) diff --git a/src/components/AppSwitcher.tsx b/src/components/AppSwitcher.tsx index 5c21cd5..c09cc46 100644 --- a/src/components/AppSwitcher.tsx +++ b/src/components/AppSwitcher.tsx @@ -26,8 +26,8 @@ export function AppSwitcher({ activeApp, onSwitch }: AppSwitcherProps) { diff --git a/src/components/JsonEditor.tsx b/src/components/JsonEditor.tsx index 65868e3..bdd1c16 100644 --- a/src/components/JsonEditor.tsx +++ b/src/components/JsonEditor.tsx @@ -62,7 +62,7 @@ const JsonEditor: React.FC = ({ return diagnostics; }), - [showValidation], + [showValidation] ); useEffect(() => { diff --git a/src/components/ProviderForm.tsx b/src/components/ProviderForm.tsx index 9045e78..ed04869 100644 --- a/src/components/ProviderForm.tsx +++ b/src/components/ProviderForm.tsx @@ -128,26 +128,25 @@ const ProviderForm: React.FC = ({ const [settingsConfigError, setSettingsConfigError] = useState(""); // 用于跟踪是否正在通过通用配置更新 const isUpdatingFromCommonConfig = useRef(false); - + // Codex 通用配置状态 const [useCodexCommonConfig, setUseCodexCommonConfig] = useState(false); - const [codexCommonConfigSnippet, setCodexCommonConfigSnippetState] = - useState(() => { - if (typeof window === "undefined") { - return DEFAULT_CODEX_COMMON_CONFIG_SNIPPET; - } - try { - const stored = window.localStorage.getItem( - CODEX_COMMON_CONFIG_STORAGE_KEY, - ); - if (stored && stored.trim()) { - return stored; - } - } catch { - // ignore localStorage 读取失败 - } + const [codexCommonConfigSnippet, setCodexCommonConfigSnippetState] = useState(() => { + if (typeof window === "undefined") { return DEFAULT_CODEX_COMMON_CONFIG_SNIPPET; - }); + } + try { + const stored = window.localStorage.getItem( + CODEX_COMMON_CONFIG_STORAGE_KEY, + ); + if (stored && stored.trim()) { + return stored; + } + } catch { + // ignore localStorage 读取失败 + } + return DEFAULT_CODEX_COMMON_CONFIG_SNIPPET; + }); const [codexCommonConfigError, setCodexCommonConfigError] = useState(""); const isUpdatingFromCodexCommonConfig = useRef(false); // -1 表示自定义,null 表示未选择,>= 0 表示预设索引 @@ -218,11 +217,7 @@ const ProviderForm: React.FC = ({ useEffect(() => { if (initialData) { if (!isCodex) { - const configString = JSON.stringify( - initialData.settingsConfig, - null, - 2, - ); + const configString = JSON.stringify(initialData.settingsConfig, null, 2); const hasCommon = hasCommonConfigSnippet( configString, commonConfigSnippet, @@ -240,9 +235,7 @@ const ProviderForm: React.FC = ({ }; if (config.env) { setClaudeModel(config.env.ANTHROPIC_MODEL || ""); - setClaudeSmallFastModel( - config.env.ANTHROPIC_SMALL_FAST_MODEL || "", - ); + setClaudeSmallFastModel(config.env.ANTHROPIC_SMALL_FAST_MODEL || ""); setBaseUrl(config.env.ANTHROPIC_BASE_URL || ""); // 初始化基础 URL // 初始化 Kimi 模型选择 @@ -261,13 +254,7 @@ const ProviderForm: React.FC = ({ setUseCodexCommonConfig(hasCommon); } } - }, [ - initialData, - commonConfigSnippet, - codexCommonConfigSnippet, - isCodex, - codexConfig, - ]); + }, [initialData, commonConfigSnippet, codexCommonConfigSnippet, isCodex, codexConfig]); // 当选择预设变化时,同步类别 useEffect(() => { @@ -510,7 +497,7 @@ const ProviderForm: React.FC = ({ isUpdatingFromCommonConfig.current = false; }, 0); } - + // 保存通用配置到 localStorage if (!validationError && typeof window !== "undefined") { try { @@ -542,7 +529,10 @@ const ProviderForm: React.FC = ({ setBaseUrl(""); // 清空基础 URL // 同步通用配置状态 - const hasCommon = hasCommonConfigSnippet(configString, commonConfigSnippet); + const hasCommon = hasCommonConfigSnippet( + configString, + commonConfigSnippet, + ); setUseCommonConfig(hasCommon); setCommonConfigError(""); @@ -653,7 +643,10 @@ const ProviderForm: React.FC = ({ updateSettingsConfigValue(configString); // 同步通用配置开关 - const hasCommon = hasCommonConfigSnippet(configString, commonConfigSnippet); + const hasCommon = hasCommonConfigSnippet( + configString, + commonConfigSnippet, + ); setUseCommonConfig(hasCommon); }; @@ -688,12 +681,11 @@ const ProviderForm: React.FC = ({ // Codex: 处理通用配置开关 const handleCodexCommonConfigToggle = (checked: boolean) => { - const { updatedConfig, error: snippetError } = - updateTomlCommonConfigSnippet( - codexConfig, - codexCommonConfigSnippet, - checked, - ); + const { updatedConfig, error: snippetError } = updateTomlCommonConfigSnippet( + codexConfig, + codexCommonConfigSnippet, + checked, + ); if (snippetError) { setCodexCommonConfigError(snippetError); @@ -761,7 +753,10 @@ const ProviderForm: React.FC = ({ // 保存 Codex 通用配置到 localStorage if (typeof window !== "undefined") { try { - window.localStorage.setItem(CODEX_COMMON_CONFIG_STORAGE_KEY, value); + window.localStorage.setItem( + CODEX_COMMON_CONFIG_STORAGE_KEY, + value, + ); } catch { // ignore localStorage 写入失败 } @@ -1182,9 +1177,7 @@ const ProviderForm: React.FC = ({ useCommonConfig={useCodexCommonConfig} onCommonConfigToggle={handleCodexCommonConfigToggle} commonConfigSnippet={codexCommonConfigSnippet} - onCommonConfigSnippetChange={ - handleCodexCommonConfigSnippetChange - } + onCommonConfigSnippetChange={handleCodexCommonConfigSnippetChange} commonConfigError={codexCommonConfigError} authError={codexAuthError} /> diff --git a/src/components/ProviderForm/ClaudeConfigEditor.tsx b/src/components/ProviderForm/ClaudeConfigEditor.tsx index 03aa98b..2b75e6d 100644 --- a/src/components/ProviderForm/ClaudeConfigEditor.tsx +++ b/src/components/ProviderForm/ClaudeConfigEditor.tsx @@ -60,7 +60,7 @@ const ClaudeConfigEditor: React.FC = ({ // 支持按下 ESC 关闭弹窗 useEffect(() => { if (!isCommonConfigModalOpen) return; - + const onKeyDown = (e: KeyboardEvent) => { if (e.key === "Escape") { e.preventDefault(); @@ -120,13 +120,15 @@ const ClaudeConfigEditor: React.FC = ({ rows={12} /> {configError && ( -

{configError}

+

+ {configError} +

)}

完整的 Claude Code settings.json 配置内容

{isCommonConfigModalOpen && ( -
{ if (e.target === e.currentTarget) closeModal(); @@ -134,7 +136,7 @@ const ClaudeConfigEditor: React.FC = ({ > {/* Backdrop - 统一背景样式 */}
- + {/* Modal - 统一窗口样式 */}
{/* Header - 统一标题栏样式 */} @@ -151,7 +153,7 @@ const ClaudeConfigEditor: React.FC = ({
- + {/* Content - 统一内容区域样式 */}

@@ -169,7 +171,7 @@ const ClaudeConfigEditor: React.FC = ({

)}
- + {/* Footer - 统一底部按钮样式 */}
- + {/* 右列:通用配置 - 不设置宽度,让内容自然收缩 */}
- +