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

This commit is contained in:
Abdelrahman Awad
2024-01-03 11:13:31 +01:00
committed by Braks
parent 7f18def7fe
commit d78a53fcd6
3 changed files with 29 additions and 3 deletions
+18 -2
View File
@@ -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)
+2
View File
@@ -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> {
+9 -1
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 { return {
id, id,
source, source,
target, target,
sourceHandle: sourceHandle || null,
targetHandle: targetHandle || null,
type: 'remove', type: 'remove',
} }
} }