refactor(store): when adding elements as selected disable emit
Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
@@ -48,6 +48,7 @@ export default (state: FlowState, getters: FlowGetters): FlowActions => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const emit = ref(true)
|
||||||
const addSelectedNodes: FlowActions['addSelectedNodes'] = (nodes) => {
|
const addSelectedNodes: FlowActions['addSelectedNodes'] = (nodes) => {
|
||||||
const selectedElementsUpdated = nodes.filter((el) => !state.selectedNodes.some((e) => el.id === e.id)).length
|
const selectedElementsUpdated = nodes.filter((el) => !state.selectedNodes.some((e) => el.id === e.id)).length
|
||||||
const selectedNodes = !nodes.length || selectedElementsUpdated ? nodes : state.selectedNodes
|
const selectedNodes = !nodes.length || selectedElementsUpdated ? nodes : state.selectedNodes
|
||||||
@@ -56,7 +57,7 @@ export default (state: FlowState, getters: FlowGetters): FlowActions => {
|
|||||||
(n) => (n.selected = selectedNodesIds.includes(n.id) || (n.parentNode && selectedNodesIds.includes(n.parentNode?.id))),
|
(n) => (n.selected = selectedNodesIds.includes(n.id) || (n.parentNode && selectedNodesIds.includes(n.parentNode?.id))),
|
||||||
)
|
)
|
||||||
state.selectedNodes = selectedNodes
|
state.selectedNodes = selectedNodes
|
||||||
if (selectedElementsUpdated) state.hooks.selectionChange.trigger({ nodes })
|
if (emit.value && selectedElementsUpdated) state.hooks.selectionChange.trigger({ nodes })
|
||||||
}
|
}
|
||||||
const addSelectedEdges: FlowActions['addSelectedEdges'] = (edges) => {
|
const addSelectedEdges: FlowActions['addSelectedEdges'] = (edges) => {
|
||||||
const selectedElementsUpdated = edges.filter((el) => !state.selectedEdges.some((e) => el.id === e.id)).length
|
const selectedElementsUpdated = edges.filter((el) => !state.selectedEdges.some((e) => el.id === e.id)).length
|
||||||
@@ -64,11 +65,13 @@ export default (state: FlowState, getters: FlowGetters): FlowActions => {
|
|||||||
const selectedEdgesIds = selectedEdges.map((e) => e.id)
|
const selectedEdgesIds = selectedEdges.map((e) => e.id)
|
||||||
state.edges.forEach((e) => (e.selected = selectedEdgesIds.includes(e.id)))
|
state.edges.forEach((e) => (e.selected = selectedEdgesIds.includes(e.id)))
|
||||||
state.selectedEdges = selectedEdges
|
state.selectedEdges = selectedEdges
|
||||||
if (selectedElementsUpdated) state.hooks.selectionChange.trigger({ edges })
|
if (emit.value && selectedElementsUpdated) state.hooks.selectionChange.trigger({ edges })
|
||||||
}
|
}
|
||||||
const addSelectedElements: FlowActions['addSelectedElements'] = (elements) => {
|
const addSelectedElements: FlowActions['addSelectedElements'] = (elements) => {
|
||||||
|
emit.value = false
|
||||||
addSelectedNodes(elements.filter(isGraphNode))
|
addSelectedNodes(elements.filter(isGraphNode))
|
||||||
addSelectedEdges(elements.filter(isGraphEdge))
|
addSelectedEdges(elements.filter(isGraphEdge))
|
||||||
|
state.hooks.selectionChange.trigger({ nodes: state.selectedNodes, edges: state.selectedEdges })
|
||||||
}
|
}
|
||||||
const setMinZoom: FlowActions['setMinZoom'] = (minZoom: any) => {
|
const setMinZoom: FlowActions['setMinZoom'] = (minZoom: any) => {
|
||||||
state.d3Zoom?.scaleExtent([minZoom, state.maxZoom])
|
state.d3Zoom?.scaleExtent([minZoom, state.maxZoom])
|
||||||
|
|||||||
Reference in New Issue
Block a user