diff --git a/packages/vue-flow/src/container/EdgeRenderer/EdgeRenderer.vue b/packages/vue-flow/src/container/EdgeRenderer/EdgeRenderer.vue index 74771d18..a3820166 100644 --- a/packages/vue-flow/src/container/EdgeRenderer/EdgeRenderer.vue +++ b/packages/vue-flow/src/container/EdgeRenderer/EdgeRenderer.vue @@ -22,13 +22,14 @@ const { edgesUpdatable, elementsSelectable, getSelectedNodes, + nodesSelectionActive, getNode, getNodes, getEdges, getEdgeTypes, - setState, addSelectedEdges, noPanClassName, + elevateEdgesOnSelect, } = $(useVueFlow()) const selectable = (s?: boolean) => (typeof s === 'undefined' ? elementsSelectable : s) @@ -57,16 +58,22 @@ const connectionLineVisible = $( let groups = $ref>([]) onPaneReady(() => { - watch( - [$$(getSelectedNodes), $$(getEdges), $$(getNodes)], + const stop = watch( + [$$(elevateEdgesOnSelect), $$(getSelectedNodes), $$(getEdges), $$(getNodes)], () => { - nextTick(() => (groups = groupEdgesByZLevel(getEdges, getNode))) + if (elevateEdgesOnSelect) { + nextTick(() => (groups = groupEdgesByZLevel(getEdges, getNode))) + } }, { flush: 'post', immediate: true, }, ) + + onBeforeUnmount(() => { + stop() + }) }) const getType = (type?: string, template?: GraphEdge['template']) => { @@ -96,9 +103,7 @@ const getType = (type?: string, template?: GraphEdge['template']) => { const onEdgeClick = (event: MouseEvent, edge: GraphEdge) => { const data = { event, edge } if (selectable(edge.selectable)) { - setState({ - nodesSelectionActive: false, - }) + $$(nodesSelectionActive).value = false addSelectedEdges([edge]) } @@ -156,49 +161,101 @@ export default {