fix(store): updateEdge action not fully updating an edge
Signed-off-by: bcakmakoglu <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
+15
-8
@@ -59,7 +59,7 @@ const addEdge = (edgeParams: Edge | Connection, edges: Edge[]) => {
|
|||||||
return edge
|
return edge
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateEdgeAction = (edge: GraphEdge, newConnection: Connection, edges: GraphEdge[]): GraphEdge | false => {
|
const updateEdgeAction = (edge: GraphEdge, newConnection: Connection, edges: GraphEdge[], add: Actions['addEdges']): boolean => {
|
||||||
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
|
||||||
@@ -72,13 +72,19 @@ const updateEdgeAction = (edge: GraphEdge, newConnection: Connection, edges: Gra
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
edge.id = getEdgeId(newConnection)
|
edges.splice(edges.indexOf(edge), 1)
|
||||||
edge.source = newConnection.source
|
add([
|
||||||
edge.target = newConnection.target
|
{
|
||||||
edge.sourceHandle = newConnection.sourceHandle
|
...edge,
|
||||||
edge.targetHandle = newConnection.targetHandle
|
id: getEdgeId(newConnection),
|
||||||
|
source: newConnection.source,
|
||||||
|
target: newConnection.target,
|
||||||
|
sourceHandle: newConnection.sourceHandle,
|
||||||
|
targetHandle: newConnection.targetHandle,
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
return edge
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
const applyEdgeChangesAction = (changes: EdgeChange[], edges: GraphEdge[]) => applyChanges(changes, edges)
|
const applyEdgeChangesAction = (changes: EdgeChange[], edges: GraphEdge[]) => applyChanges(changes, edges)
|
||||||
@@ -237,7 +243,8 @@ export default (state: State, getters: ComputedGetters): Actions => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateEdge: Actions['updateEdge'] = (oldEdge, newConnection) => updateEdgeAction(oldEdge, newConnection, state.edges)
|
const updateEdge: Actions['updateEdge'] = (oldEdge, newConnection) =>
|
||||||
|
updateEdgeAction(oldEdge, newConnection, state.edges, addEdges)
|
||||||
const applyNodeChanges: Actions['applyNodeChanges'] = (changes) => applyNodeChangesAction(changes, state.nodes)
|
const applyNodeChanges: Actions['applyNodeChanges'] = (changes) => applyNodeChangesAction(changes, state.nodes)
|
||||||
const applyEdgeChanges: Actions['applyEdgeChanges'] = (changes) => applyEdgeChangesAction(changes, state.edges)
|
const applyEdgeChanges: Actions['applyEdgeChanges'] = (changes) => applyEdgeChangesAction(changes, state.edges)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -76,7 +76,7 @@ export interface Actions<N = any, E = N> {
|
|||||||
setEdges: (edges: Edge<E>[]) => void
|
setEdges: (edges: Edge<E>[]) => void
|
||||||
addNodes: <NA = N>(nodes: Node<NA>[], extent?: CoordinateExtent) => void
|
addNodes: <NA = N>(nodes: Node<NA>[], extent?: CoordinateExtent) => void
|
||||||
addEdges: <EA = E>(edgesOrConnections: (Edge<EA> | Connection)[]) => void
|
addEdges: <EA = E>(edgesOrConnections: (Edge<EA> | Connection)[]) => void
|
||||||
updateEdge: <EU = E>(oldEdge: GraphEdge<EU>, newConnection: Connection) => GraphEdge<EU> | false
|
updateEdge: <EU = E>(oldEdge: GraphEdge<EU>, newConnection: Connection) => boolean
|
||||||
applyEdgeChanges: <ED = E>(changes: EdgeChange[]) => GraphEdge<ED>[]
|
applyEdgeChanges: <ED = E>(changes: EdgeChange[]) => GraphEdge<ED>[]
|
||||||
applyNodeChanges: <ND = N>(changes: NodeChange[]) => GraphNode<ND>[]
|
applyNodeChanges: <ND = N>(changes: NodeChange[]) => GraphNode<ND>[]
|
||||||
addSelectedElements: (elements: FlowElements<N, E>) => void
|
addSelectedElements: (elements: FlowElements<N, E>) => void
|
||||||
|
|||||||
Reference in New Issue
Block a user