diff --git a/packages/editor-ui/src/components/canvas/WorkflowCanvas.vue b/packages/editor-ui/src/components/canvas/WorkflowCanvas.vue index e90c64350a..d6097f3cb6 100644 --- a/packages/editor-ui/src/components/canvas/WorkflowCanvas.vue +++ b/packages/editor-ui/src/components/canvas/WorkflowCanvas.vue @@ -56,6 +56,7 @@ const { nodes: mappedNodes, connections: mappedConnections } = useCanvasMapping(
{ expect(setNodePositionByIdSpy).toHaveBeenCalledWith(nodes[1].id, expect.any(Object)); expect(setNodePositionByIdSpy).toHaveBeenCalledWith(nodes[2].id, expect.any(Object)); }); + + it('should return newly added nodes', async () => { + const workflowsStore = mockedStore(useWorkflowsStore); + const nodeTypesStore = useNodeTypesStore(); + const nodeTypeName = 'type'; + const nodes = [ + mockNode({ name: 'Node 1', type: nodeTypeName, position: [30, 40] }), + mockNode({ name: 'Node 2', type: nodeTypeName, position: [100, 240] }), + ]; + + workflowsStore.getCurrentWorkflow.mockReturnValue( + createTestWorkflowObject(workflowsStore.workflow), + ); + + nodeTypesStore.nodeTypes = { + [nodeTypeName]: { 1: mockNodeTypeDescription({ name: nodeTypeName }) }, + }; + + const { addNodes } = useCanvasOperations({ router }); + const added = await addNodes(nodes, {}); + expect(added.length).toBe(2); + }); }); describe('revertAddNode', () => { diff --git a/packages/editor-ui/src/composables/useCanvasOperations.ts b/packages/editor-ui/src/composables/useCanvasOperations.ts index d1f7259886..8b95b2c70e 100644 --- a/packages/editor-ui/src/composables/useCanvasOperations.ts +++ b/packages/editor-ui/src/composables/useCanvasOperations.ts @@ -494,6 +494,7 @@ export function useCanvasOperations({ router }: { router: ReturnType { const typeVersion = @@ -516,7 +517,7 @@ export function useCanvasOperations({ router }: { router: ReturnType { workflowsStore.setNodePristine(nodeData.name, true); @@ -613,10 +622,6 @@ export function useCanvasOperations({ router }: { router: ReturnType { @@ -886,9 +890,8 @@ async function onAddNodesAndConnections( addConnections(mappedConnections); - void nextTick(() => { - uiStore.resetLastInteractedWith(); - }); + uiStore.resetLastInteractedWith(); + selectNodes([addedNodes[addedNodes.length - 1].id]); } async function onRevertAddNode({ node }: { node: INodeUi }) { @@ -1565,6 +1568,7 @@ onBeforeUnmount(() => {