feat(core): add source and target handle ids to edge removal change

This commit is contained in:
Abdelrahman Awad
2023-12-25 17:35:27 +02:00
committed by Braks
parent 7f18def7fe
commit d78a53fcd6
3 changed files with 29 additions and 3 deletions

View File

@@ -520,7 +520,15 @@ export function useActions(
const connections = getConnectedEdges(nodes).filter((edge) => (isDef(edge.deletable) ? edge.deletable : true))
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
}
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)

View File

@@ -55,6 +55,8 @@ export type EdgeSelectionChange = NodeSelectionChange
export interface EdgeRemoveChange extends NodeRemoveChange {
source: string
target: string
sourceHandle: string | null
targetHandle: string | null
}
export interface EdgeAddChange<Data = ElementData> {

View File

@@ -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 {
id,
source,
target,
sourceHandle: sourceHandle || null,
targetHandle: targetHandle || null,
type: 'remove',
}
}