feat(core): add source and target handle ids to edge removal change
This commit is contained in:
@@ -520,7 +520,15 @@ export function useActions(
|
|||||||
const connections = getConnectedEdges(nodes).filter((edge) => (isDef(edge.deletable) ? edge.deletable : true))
|
const connections = getConnectedEdges(nodes).filter((edge) => (isDef(edge.deletable) ? edge.deletable : true))
|
||||||
|
|
||||||
edgeChanges.push(
|
edgeChanges.push(
|
||||||
...connections.map((connection) => createEdgeRemoveChange(connection.id, connection.source, connection.target)),
|
...connections.map((connection) =>
|
||||||
|
createEdgeRemoveChange(
|
||||||
|
connection.id,
|
||||||
|
connection.source,
|
||||||
|
connection.target,
|
||||||
|
connection.sourceHandle,
|
||||||
|
connection.targetHandle,
|
||||||
|
),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -590,7 +598,15 @@ export function useActions(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
changes.push(createEdgeRemoveChange(typeof item === 'string' ? item : item.id, currEdge.source, currEdge.target))
|
changes.push(
|
||||||
|
createEdgeRemoveChange(
|
||||||
|
typeof item === 'string' ? item : item.id,
|
||||||
|
currEdge.source,
|
||||||
|
currEdge.target,
|
||||||
|
currEdge.sourceHandle,
|
||||||
|
currEdge.targetHandle,
|
||||||
|
),
|
||||||
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
state.hooks.edgesChange.trigger(changes)
|
state.hooks.edgesChange.trigger(changes)
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ export type EdgeSelectionChange = NodeSelectionChange
|
|||||||
export interface EdgeRemoveChange extends NodeRemoveChange {
|
export interface EdgeRemoveChange extends NodeRemoveChange {
|
||||||
source: string
|
source: string
|
||||||
target: string
|
target: string
|
||||||
|
sourceHandle: string | null
|
||||||
|
targetHandle: string | null
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface EdgeAddChange<Data = ElementData> {
|
export interface EdgeAddChange<Data = ElementData> {
|
||||||
|
|||||||
@@ -235,11 +235,19 @@ export function createNodeRemoveChange(id: string): NodeRemoveChange {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createEdgeRemoveChange(id: string, source: string, target: string): EdgeRemoveChange {
|
export function createEdgeRemoveChange(
|
||||||
|
id: string,
|
||||||
|
source: string,
|
||||||
|
target: string,
|
||||||
|
sourceHandle?: string | null,
|
||||||
|
targetHandle?: string | null,
|
||||||
|
): EdgeRemoveChange {
|
||||||
return {
|
return {
|
||||||
id,
|
id,
|
||||||
source,
|
source,
|
||||||
target,
|
target,
|
||||||
|
sourceHandle: sourceHandle || null,
|
||||||
|
targetHandle: targetHandle || null,
|
||||||
type: 'remove',
|
type: 'remove',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user