From d02ade03e9a6b37e3d44dcaf3022486e72a9f6d5 Mon Sep 17 00:00:00 2001 From: Braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Fri, 1 Apr 2022 15:17:00 +0200 Subject: [PATCH] feat(edges): return new edge from updateEdge utility --- package/src/store/actions.ts | 23 +++++++++++------------ package/src/types/store.ts | 2 +- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/package/src/store/actions.ts b/package/src/store/actions.ts index 225776e1..4bb414ae 100644 --- a/package/src/store/actions.ts +++ b/package/src/store/actions.ts @@ -56,7 +56,7 @@ const addEdge = (edgeParams: Edge | Connection, edges: Edge[]) => { return edge } -const updateEdgeAction = (edge: GraphEdge, newConnection: Connection, edges: GraphEdge[], add: Actions['addEdges']): boolean => { +const updateEdgeAction = (edge: GraphEdge, newConnection: Connection, edges: GraphEdge[], add: Actions['addEdges']) => { if (!newConnection.source || !newConnection.target) { console.warn("Can't create new edge. An edge needs a source and a target.") return false @@ -70,18 +70,17 @@ const updateEdgeAction = (edge: GraphEdge, newConnection: Connection, edges: Gra } edges.splice(edges.indexOf(edge), 1) - add([ - { - ...edge, - id: getEdgeId(newConnection), - source: newConnection.source, - target: newConnection.target, - sourceHandle: newConnection.sourceHandle, - targetHandle: newConnection.targetHandle, - }, - ]) + const newEdge = { + ...edge, + id: getEdgeId(newConnection), + source: newConnection.source, + target: newConnection.target, + sourceHandle: newConnection.sourceHandle, + targetHandle: newConnection.targetHandle, + } + add([newEdge]) - return true + return newEdge } const createGraphNodes = (nodes: Node[], getNode: Getters['getNode'], currGraphNodes: GraphNode[], extent: CoordinateExtent) => { diff --git a/package/src/types/store.ts b/package/src/types/store.ts index 670b8d20..4706eec2 100644 --- a/package/src/types/store.ts +++ b/package/src/types/store.ts @@ -109,7 +109,7 @@ export interface Actions { /** parses edges and adds to state */ addEdges: (edgesOrConnections: (Edge | Connection)[]) => void /** updates an edge */ - updateEdge: (oldEdge: GraphEdge, newConnection: Connection) => boolean + updateEdge: (oldEdge: GraphEdge, newConnection: Connection) => GraphEdge | false applyEdgeChanges: (changes: EdgeChange[]) => GraphEdge[] applyNodeChanges: (changes: NodeChange[]) => GraphNode[] addSelectedElements: (elements: FlowElements) => void