- {
- (showChangeBlock || canRunBySingle(data.type, isChildNode)) && (
- <>
-
- {
- canRunBySingle(data.type, isChildNode) && (
-
- )
- }
- {
- showChangeBlock && (
-
- )
- }
-
-
- >
- )
- }
- {
- !nodesReadOnly && (
- <>
- {
- !nodeMetaData.isSingleton && (
- <>
-
-
-
-
-
- >
- )
- }
- {
- !nodeMetaData.isUndeletable && (
- <>
-
-
-
-
- >
- )
- }
- >
- )
- }
- {
- isWorkflowTool && workflowAppId && (
- <>
-
-
- >
- )
- }
- {
- showHelpLink && nodeMetaData.helpLinkUri && (
- <>
-
-
- >
- )
- }
-
-
-
- {t('panel.about', { ns: 'workflow' }).toLocaleUpperCase()}
-
-
{nodeMetaData.description}
-
- {t('panel.createdBy', { ns: 'workflow' })}
- {' '}
- {nodeMetaData.author}
-
-
-
-
- )
-}
-
-export default memo(PanelOperatorPopup)
diff --git a/web/app/components/workflow/nodes/_base/components/workflow-panel/__tests__/index.spec.tsx b/web/app/components/workflow/nodes/_base/components/workflow-panel/__tests__/index.spec.tsx
index ac920e4862..793e773e59 100644
--- a/web/app/components/workflow/nodes/_base/components/workflow-panel/__tests__/index.spec.tsx
+++ b/web/app/components/workflow/nodes/_base/components/workflow-panel/__tests__/index.spec.tsx
@@ -241,8 +241,8 @@ vi.mock('../next-step', () => ({
default: () => = ({
)
}
-
+
{
['showSingleRunPanel', 'setShowSingleRunPanel', true],
['nodeAnimation', 'setNodeAnimation', true],
['candidateNode', 'setCandidateNode', undefined],
- ['nodeMenu', 'setNodeMenu', { top: 100, left: 200, nodeId: 'n1' }],
+ ['nodeMenu', 'setNodeMenu', { clientX: 200, clientY: 100, nodeId: 'n1' }],
['showAssignVariablePopup', 'setShowAssignVariablePopup', undefined],
['hoveringAssignVariableGroupId', 'setHoveringAssignVariableGroupId', 'group-1'],
['connectingNodePayload', 'setConnectingNodePayload', { nodeId: 'n1', nodeType: 'llm', handleType: 'source', handleId: 'h1' }],
diff --git a/web/app/components/workflow/store/workflow/node-slice.ts b/web/app/components/workflow/store/workflow/node-slice.ts
index eb16388ef4..fc96635acb 100644
--- a/web/app/components/workflow/store/workflow/node-slice.ts
+++ b/web/app/components/workflow/store/workflow/node-slice.ts
@@ -19,8 +19,8 @@ export type NodeSliceShape = {
candidateNode?: Node
setCandidateNode: (candidateNode?: Node) => void
nodeMenu?: {
- top: number
- left: number
+ clientX: number
+ clientY: number
nodeId: string
}
setNodeMenu: (nodeMenu: NodeSliceShape['nodeMenu']) => void