feat(utils): make addEdge and removeElement mutate the array passed in

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
Braks
2021-11-25 15:21:36 +01:00
parent 1ce41ccd40
commit 74cc61ad8d
3 changed files with 10 additions and 11 deletions
+8 -5
View File
@@ -69,11 +69,14 @@ export const getIncomers = (node: GraphNode, elements: Elements) => getConnected
export const removeElements = (elementsToRemove: Elements, elements: Elements) => {
const nodeIdsToRemove = elementsToRemove.map((n) => n.id)
return elements.filter((element) => {
const shouldRemove = (element: Node | Edge) => {
const { target, source } = isEdge(element) ? element : { target: '', source: '' }
return !(nodeIdsToRemove.includes(element.id) || nodeIdsToRemove.includes(target) || nodeIdsToRemove.includes(source))
return nodeIdsToRemove.includes(element.id) || nodeIdsToRemove.includes(target) || nodeIdsToRemove.includes(source)
}
elements.forEach((element, i) => {
if (shouldRemove(element)) elements.splice(i, 1)
})
return elements.filter((element) => !shouldRemove(element))
}
const getEdgeId = ({ source, sourceHandle, target, targetHandle }: Connection): ElementId =>
@@ -106,8 +109,8 @@ export const addEdge = (edgeParams: Edge | Connection, elements: Elements) => {
} as Edge
}
if (connectionExists(edge, elements)) return elements
return elements.push(edge)
elements.push(edge)
return [...elements, edge]
}
export const updateEdge = (oldEdge: Edge, newConnection: Connection, elements: Elements) => {