fix(editor): Connection port mapped incorrectly when changed dynamically (#17958)

This commit is contained in:
Suguru Inoue
2025-08-04 14:54:04 +02:00
committed by GitHub
parent 7b92e33b3b
commit 566789caee
6 changed files with 42 additions and 32 deletions

View File

@@ -50,7 +50,7 @@
"@typescript/vfs": "^1.6.0",
"@vue-flow/background": "^1.3.2",
"@vue-flow/controls": "^1.1.2",
"@vue-flow/core": "^1.45.0",
"@vue-flow/core": "1.42.1",
"@vue-flow/minimap": "^1.5.2",
"@vue-flow/node-resizer": "^1.4.0",
"@vueuse/components": "^10.11.0",

View File

@@ -92,10 +92,7 @@ export function createCanvasGraphNode({
isParent: false,
selected: false,
resizing: false,
handleBounds: {
source: null,
target: null,
},
handleBounds: {},
events: {},
data: createCanvasNodeData({ id, type, ...data }),
...rest,

View File

@@ -448,7 +448,11 @@ function onSelectNodes({ ids, panIntoView }: CanvasEventBusEvents['nodes:select'
const newViewport = updateViewportToContainNodes(viewport.value, dimensions.value, nodes, 100);
void setViewport(newViewport, { duration: 200, interpolate: 'linear' });
void setViewport(newViewport, {
duration: 200,
// TODO: restore when re-upgrading vue-flow to >= 1.45
// interpolate: 'linear',
});
}
}

View File

@@ -90,7 +90,8 @@ export const useExperimentalNdvStore = defineStore('experimentalNdv', () => {
{
duration: 200,
zoom: maxCanvasZoom.value,
interpolate: 'linear',
// TODO: restore when re-upgrading vue-flow to >= 1.45
// interpolate: 'linear',
},
);
}
@@ -108,11 +109,19 @@ export const useExperimentalNdvStore = defineStore('experimentalNdv', () => {
function toggleZoomMode(options: ToggleZoomModeOptions) {
if (isActive(options.canvasViewport.zoom)) {
if (previousViewport.value === undefined) {
void options.fitView({ duration: 200, interpolate: 'linear' });
void options.fitView({
duration: 200,
// TODO: restore when re-upgrading vue-flow to >= 1.45
// interpolate: 'linear',
});
return;
}
void options.setViewport(previousViewport.value, { duration: 200, interpolate: 'linear' });
void options.setViewport(previousViewport.value, {
duration: 200,
// TODO: restore when re-upgrading vue-flow to >= 1.45
// interpolate: 'linear'
});
return;
}
@@ -129,7 +138,11 @@ export const useExperimentalNdvStore = defineStore('experimentalNdv', () => {
return;
}
void options.zoomTo(maxCanvasZoom.value, { duration: 200, interpolate: 'linear' });
void options.zoomTo(maxCanvasZoom.value, {
duration: 200,
// TODO: restore when re-upgrading vue-flow to >= 1.45
// interpolate: 'linear',
});
}
return {

View File

@@ -555,10 +555,7 @@ describe('calculateNodeSize', () => {
function createTestGraphNode(data: Partial<GraphNode> = {}): GraphNode {
return {
computedPosition: { z: 0, ...(data.position ?? { x: 0, y: 0 }) },
handleBounds: {
source: null,
target: null,
},
handleBounds: {},
dimensions: { width: 0, height: 0 },
isParent: true,
selected: false,