From 8f11073350c2375d02ebafd18f7e2ca0d53432bb Mon Sep 17 00:00:00 2001 From: lostiv <30612717+lostiv@users.noreply.github.com> Date: Sat, 16 May 2026 02:51:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20setAIConfigs/setWebDAVConfigs=20?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E6=97=B6=E4=BF=9D=E6=8C=81=20isActive=20?= =?UTF-8?q?=E4=B8=80=E8=87=B4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit autoSync 从后端拉取配置后调用 setWebDAVConfigs/setAIConfigs 直接替换数组, 未同步 isActive 与 activeWebDAVConfig/activeAIConfig 指针。 导致后端 stale 数据反向覆盖前端激活状态,备份保存时 isActive=false。 --- src/store/useAppStore.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/store/useAppStore.ts b/src/store/useAppStore.ts index d6a452e..28ded73 100644 --- a/src/store/useAppStore.ts +++ b/src/store/useAppStore.ts @@ -913,7 +913,9 @@ export const useAppStore = create()( aiConfigs: state.aiConfigs.map(c => ({ ...c, isActive: c.id === activeAIConfig })), activeAIConfig })), - setAIConfigs: (aiConfigs) => set({ aiConfigs }), + setAIConfigs: (aiConfigs) => set((state) => ({ + aiConfigs: aiConfigs.map(c => ({ ...c, isActive: c.id === state.activeAIConfig })), + })), // WebDAV actions addWebDAVConfig: (config) => set((state) => ({ @@ -932,7 +934,9 @@ export const useAppStore = create()( webdavConfigs: state.webdavConfigs.map(c => ({ ...c, isActive: c.id === activeWebDAVConfig })), activeWebDAVConfig })), - setWebDAVConfigs: (webdavConfigs) => set({ webdavConfigs }), + setWebDAVConfigs: (webdavConfigs) => set((state) => ({ + webdavConfigs: webdavConfigs.map(c => ({ ...c, isActive: c.id === state.activeWebDAVConfig })), + })), setLastBackup: (lastBackup) => set({ lastBackup }), // Search actions