diff --git a/web/src/pages/agent/canvas/node/tool-node.tsx b/web/src/pages/agent/canvas/node/tool-node.tsx index ec612a5dc6..d91efb9428 100644 --- a/web/src/pages/agent/canvas/node/tool-node.tsx +++ b/web/src/pages/agent/canvas/node/tool-node.tsx @@ -15,7 +15,7 @@ function InnerToolNode({ isConnectable = true, selected, }: NodeProps) { - const { edges, getNode, setClickedToolId } = useGraphStore(); + const { edges, getNode } = useGraphStore(); const upstreamAgentNodeId = edges.find((x) => x.target === id)?.source; const upstreamAgentNode = getNode(upstreamAgentNodeId); const { findMcpById } = useFindMcpById(); @@ -61,12 +61,6 @@ function InnerToolNode({ return ( { - if (mcp.mcp_id === Operator.Code) { - e.preventDefault(); - e.stopPropagation(); - } - }} className="cursor-pointer" data-tool={mcp.mcp_id} > @@ -76,21 +70,16 @@ function InnerToolNode({ } const tool = x as unknown as IAgentForm['tools'][number]; + // Code has no config form, so its card is not interactive: without + // data-tool attributes the node click handler ignores the click. + const isCode = tool.component_name === Operator.Code; return ( { - if (tool.component_name === Operator.Code) { - e.preventDefault(); - e.stopPropagation(); - } - - setClickedToolId(tool.id || tool.component_name); - }} - className="cursor-pointer" - data-tool={tool.component_name} - data-tool-id={tool.id} + className={isCode ? undefined : 'cursor-pointer'} + data-tool={isCode ? undefined : tool.component_name} + data-tool-id={isCode ? undefined : tool.id} >
diff --git a/web/src/pages/agent/form/agent-form/agent-tools.tsx b/web/src/pages/agent/form/agent-form/agent-tools.tsx index 8074f3807a..53712fbb4f 100644 --- a/web/src/pages/agent/form/agent-form/agent-tools.tsx +++ b/web/src/pages/agent/form/agent-form/agent-tools.tsx @@ -78,7 +78,7 @@ export function ToolCard({ type ActionButtonProps = { record: T; deleteRecord(record: T): void; - edit: MouseEventHandler; + edit?: MouseEventHandler; }; function ActionButton({ deleteRecord, record, edit }: ActionButtonProps) { @@ -89,15 +89,17 @@ function ActionButton({ deleteRecord, record, edit }: ActionButtonProps) { // Wrapping into buttons to solve the issue that clicking icon occasionally not jumping to corresponding form return (
- + {edit && ( + + )}