diff --git a/src/components/Edges/wrapEdge.tsx b/src/components/Edges/wrapEdge.tsx index 7579c57b..cfc1f4cb 100644 --- a/src/components/Edges/wrapEdge.tsx +++ b/src/components/Edges/wrapEdge.tsx @@ -55,21 +55,32 @@ export default (EdgeComponent: ComponentType) => { const onEdgeClick = useCallback( (event: React.MouseEvent): void => { + const edgeElement: Edge = { + id, + source, + target, + type, + }; + + if (sourceHandleId) { + edgeElement.sourceHandle = sourceHandleId; + } + + if (targetHandleId) { + edgeElement.targetHandle = targetHandleId; + } + + if (typeof data !== 'undefined') { + edgeElement.data = data; + } + if (elementsSelectable) { - addSelectedElements({ id, source, target }); + addSelectedElements(edgeElement); } - if (onClick) { - const edgeElement: Edge = { id, source, target, type }; - - if (typeof data !== 'undefined') { - edgeElement.data = data; - } - - onClick(event, edgeElement); - } + onClick?.(event, edgeElement); }, - [elementsSelectable, id, source, target, type, data, onClick] + [elementsSelectable, id, source, target, type, data, sourceHandleId, targetHandleId, onClick] ); const handleEdgeUpdater = useCallback(