fix: common config checkbox state not persisting for Codex/Claude/Gemini (#2191)

修复:Codex/Claude/Gemini 通用配置勾选状态无法正确保存的问题

Co-authored-by: 曾兴 <zengx@gantsoftware.com>
This commit is contained in:
zxZeng
2026-04-21 11:04:31 +08:00
committed by GitHub
parent 1b345fbefb
commit cc77a040e2
3 changed files with 21 additions and 10 deletions
@@ -118,17 +118,22 @@ export function useCommonConfigSnippet({
// 初始化时检查通用配置片段(编辑模式)
useEffect(() => {
if (!enabled) return;
if (initialData && !isLoading) {
if (initialData && !isLoading && !hasInitializedEditMode.current) {
hasInitializedEditMode.current = true;
const configString = JSON.stringify(initialData.settingsConfig, null, 2);
const inferredHasCommon = hasCommonConfigSnippet(
configString,
commonConfigSnippet,
);
const hasCommon = initialEnabled ?? inferredHasCommon;
// 优先级:显式设置的 initialEnabled > 从配置推断的值
// 如果 initialEnabled 为 undefined,使用推断值
const hasCommon = initialEnabled !== undefined ? initialEnabled : inferredHasCommon;
setUseCommonConfig(hasCommon);
if (hasCommon && !inferredHasCommon && !hasInitializedEditMode.current) {
hasInitializedEditMode.current = true;
// 如果应该启用通用配置但配置中还没有,则自动添加
if (hasCommon && !inferredHasCommon) {
const { updatedConfig, error } = updateCommonConfigSnippet(
settingsConfig,
commonConfigSnippet,
@@ -141,8 +146,6 @@ export function useCommonConfigSnippet({
isUpdatingFromCommonConfig.current = false;
}, 0);
}
} else {
hasInitializedEditMode.current = true;
}
}
}, [