From 2ad121fad0781879a28cbeef775f7ef3f90f0cfd Mon Sep 17 00:00:00 2001 From: moklick Date: Tue, 1 Dec 2020 10:51:15 +0100 Subject: [PATCH] refactor(edges): pass source and target handle ids for click and selection #739 --- src/components/Edges/wrapEdge.tsx | 33 ++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) 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(