feat(edges): return new edge from updateEdge utility

This commit is contained in:
Braks
2022-04-04 21:42:48 +02:00
parent 73ce6f207b
commit d02ade03e9
2 changed files with 12 additions and 13 deletions
+11 -12
View File
@@ -56,7 +56,7 @@ const addEdge = (edgeParams: Edge | Connection, edges: Edge[]) => {
return 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) { if (!newConnection.source || !newConnection.target) {
console.warn("Can't create new edge. An edge needs a source and a target.") console.warn("Can't create new edge. An edge needs a source and a target.")
return false return false
@@ -70,18 +70,17 @@ const updateEdgeAction = (edge: GraphEdge, newConnection: Connection, edges: Gra
} }
edges.splice(edges.indexOf(edge), 1) edges.splice(edges.indexOf(edge), 1)
add([ const newEdge = {
{ ...edge,
...edge, id: getEdgeId(newConnection),
id: getEdgeId(newConnection), source: newConnection.source,
source: newConnection.source, target: newConnection.target,
target: newConnection.target, sourceHandle: newConnection.sourceHandle,
sourceHandle: newConnection.sourceHandle, targetHandle: newConnection.targetHandle,
targetHandle: newConnection.targetHandle, }
}, add([newEdge])
])
return true return newEdge
} }
const createGraphNodes = (nodes: Node[], getNode: Getters['getNode'], currGraphNodes: GraphNode[], extent: CoordinateExtent) => { const createGraphNodes = (nodes: Node[], getNode: Getters['getNode'], currGraphNodes: GraphNode[], extent: CoordinateExtent) => {
+1 -1
View File
@@ -109,7 +109,7 @@ export interface Actions<NodeData = ElementData, EdgeData = ElementData> {
/** parses edges and adds to state */ /** parses edges and adds to state */
addEdges: <EA = EdgeData>(edgesOrConnections: (Edge<EA> | Connection)[]) => void addEdges: <EA = EdgeData>(edgesOrConnections: (Edge<EA> | Connection)[]) => void
/** updates an edge */ /** updates an edge */
updateEdge: <EU = EdgeData>(oldEdge: GraphEdge<EU>, newConnection: Connection) => boolean updateEdge: <EU = EdgeData>(oldEdge: GraphEdge<EU>, newConnection: Connection) => GraphEdge | false
applyEdgeChanges: <ED = EdgeData>(changes: EdgeChange[]) => GraphEdge<ED>[] applyEdgeChanges: <ED = EdgeData>(changes: EdgeChange[]) => GraphEdge<ED>[]
applyNodeChanges: <ND = NodeData>(changes: NodeChange[]) => GraphNode<ND>[] applyNodeChanges: <ND = NodeData>(changes: NodeChange[]) => GraphNode<ND>[]
addSelectedElements: (elements: FlowElements<NodeData, EdgeData>) => void addSelectedElements: (elements: FlowElements<NodeData, EdgeData>) => void