From 7ce55cf90f3e51a3dc11ea870ad63366b2341d69 Mon Sep 17 00:00:00 2001 From: Vaayne Date: Mon, 10 Mar 2025 10:50:22 +0800 Subject: [PATCH] fix(MCPToolsButton): Optimize useEffect dependencies for server enabling logic --- .../src/pages/home/Inputbar/MCPToolsButton.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/renderer/src/pages/home/Inputbar/MCPToolsButton.tsx b/src/renderer/src/pages/home/Inputbar/MCPToolsButton.tsx index 2c250c24..7ad46ee1 100644 --- a/src/renderer/src/pages/home/Inputbar/MCPToolsButton.tsx +++ b/src/renderer/src/pages/home/Inputbar/MCPToolsButton.tsx @@ -28,19 +28,19 @@ const MCPToolsButton: FC = ({ enabledMCPs, onEnableMCP, ToolbarButton }) // Check if all active servers are enabled const activeServers = mcpServers.filter((s) => s.isActive) - // Enable all active servers by default + // This effect only runs when enableAll changes, not on every render useEffect(() => { if (activeServers.length > 0) { activeServers.forEach((server) => { - if (enableAll && !enabledMCPs.includes(server)) { - onEnableMCP(server) - } - if (!enableAll && enabledMCPs.includes(server)) { - onEnableMCP(server) + const isServerEnabled = enabledMCPs.includes(server) + if (enableAll && !isServerEnabled) { + onEnableMCP(server) // Enable server if enableAll is true and server is disabled + } else if (!enableAll && isServerEnabled) { + onEnableMCP(server) // Disable server if enableAll is false and server is enabled } }) } - }, [activeServers, enableAll, enabledMCPs, onEnableMCP]) + }, [enableAll]) // Only depend on enableAll, not on enabledMCPs const menu = (