refactor(conenctionline): simplify getSourceHandle helper

This commit is contained in:
moklick
2021-11-02 14:49:16 +01:00
parent 6922c7f553
commit 3cc33aa7cb
2 changed files with 10 additions and 18 deletions

View File

@@ -82,4 +82,4 @@
"dist",
"nocss"
]
}
}

View File

@@ -27,6 +27,14 @@ interface ConnectionLineProps {
CustomConnectionLineComponent?: ConnectionLineComponent;
}
const getSourceHandle = (handleId: ElementId | null, sourceNode: Node, connectionHandleType: HandleType) => {
const handleTypeInverted = connectionHandleType === 'source' ? 'target' : 'source';
const handleBound =
sourceNode.__rf.handleBounds[connectionHandleType] || sourceNode.__rf.handleBounds[handleTypeInverted];
return handleId ? handleBound.find((d: HandleElement) => d.id === handleId) : handleBound[0];
};
export default ({
connectionNodeId,
connectionHandleId,
@@ -53,22 +61,7 @@ export default ({
return null;
}
const getSourceHandle = (handleId: ElementId | null, sourceNode: Node) => {
const handleBound = sourceNode.__rf.handleBounds[connectionHandleType];
if (handleBound) {
if (handleId) {
return sourceNode.__rf.handleBounds[connectionHandleType].find((d: HandleElement) => d.id === handleId);
}
return sourceNode.__rf.handleBounds[connectionHandleType][0]
}
const handleType = connectionHandleType === 'source' ? 'target' : 'source';
if (handleId) {
return sourceNode.__rf.handleBounds[handleType].find((d: HandleElement) => d.id === handleId);
}
return sourceNode.__rf.handleBounds[handleType][0]
}
const sourceHandle = getSourceHandle(handleId, sourceNode);
const sourceHandle = getSourceHandle(handleId, sourceNode, connectionHandleType);
const sourceHandleX = sourceHandle ? sourceHandle.x + sourceHandle.width / 2 : sourceNode.__rf.width / 2;
const sourceHandleY = sourceHandle ? sourceHandle.y + sourceHandle.height / 2 : sourceNode.__rf.height;
const sourceX = sourceNode.__rf.position.x + sourceHandleX;
@@ -81,7 +74,6 @@ export default ({
const targetPosition = isRightOrLeft ? Position.Left : Position.Top;
if (CustomConnectionLineComponent) {
return (
<g className="react-flow__connection">
<CustomConnectionLineComponent