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
}
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) => {
+1 -1
View File
@@ -109,7 +109,7 @@ export interface Actions<NodeData = ElementData, EdgeData = ElementData> {
/** parses edges and adds to state */
addEdges: <EA = EdgeData>(edgesOrConnections: (Edge<EA> | Connection)[]) => void
/** 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>[]
applyNodeChanges: <ND = NodeData>(changes: NodeChange[]) => GraphNode<ND>[]
addSelectedElements: (elements: FlowElements<NodeData, EdgeData>) => void