mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-09 14:59:27 +08:00
fix(MCPToolsButton): Optimize useEffect dependencies for server enabling logic
This commit is contained in:
parent
0e74c71e41
commit
e2a0b2e8a1
@ -28,19 +28,19 @@ const MCPToolsButton: FC<Props> = ({ enabledMCPs, onEnableMCP, ToolbarButton })
|
|||||||
// Check if all active servers are enabled
|
// Check if all active servers are enabled
|
||||||
const activeServers = mcpServers.filter((s) => s.isActive)
|
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(() => {
|
useEffect(() => {
|
||||||
if (activeServers.length > 0) {
|
if (activeServers.length > 0) {
|
||||||
activeServers.forEach((server) => {
|
activeServers.forEach((server) => {
|
||||||
if (enableAll && !enabledMCPs.includes(server)) {
|
const isServerEnabled = enabledMCPs.includes(server)
|
||||||
onEnableMCP(server)
|
if (enableAll && !isServerEnabled) {
|
||||||
}
|
onEnableMCP(server) // Enable server if enableAll is true and server is disabled
|
||||||
if (!enableAll && enabledMCPs.includes(server)) {
|
} else if (!enableAll && isServerEnabled) {
|
||||||
onEnableMCP(server)
|
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 = (
|
const menu = (
|
||||||
<div ref={menuRef} className="ant-dropdown-menu">
|
<div ref={menuRef} className="ant-dropdown-menu">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user