refactor(edge-updater): pass handle type #1212

This commit is contained in:
moklick
2021-05-28 14:26:03 +02:00
parent 64510998c0
commit 3124d46732
4 changed files with 12 additions and 6 deletions
+3
View File
@@ -7,6 +7,7 @@ import ReactFlow, {
OnLoadParams, OnLoadParams,
Connection, Connection,
Edge, Edge,
removeElements,
} from 'react-flow-renderer'; } from 'react-flow-renderer';
const initialElements: Elements = [ const initialElements: Elements = [
@@ -56,6 +57,7 @@ const UpdatableEdge = () => {
const onEdgeUpdate = (oldEdge: Edge, newConnection: Connection) => const onEdgeUpdate = (oldEdge: Edge, newConnection: Connection) =>
setElements((els) => updateEdge(oldEdge, newConnection, els)); setElements((els) => updateEdge(oldEdge, newConnection, els));
const onConnect = (params: Connection | Edge) => setElements((els) => addEdge(params, els)); const onConnect = (params: Connection | Edge) => setElements((els) => addEdge(params, els));
const onElementsRemove = (elementsToRemove: Elements) => setElements((els) => removeElements(elementsToRemove, els));
return ( return (
<ReactFlow <ReactFlow
@@ -65,6 +67,7 @@ const UpdatableEdge = () => {
onEdgeUpdate={onEdgeUpdate} onEdgeUpdate={onEdgeUpdate}
onConnect={onConnect} onConnect={onConnect}
onEdgeUpdateStart={onEdgeUpdateStart} onEdgeUpdateStart={onEdgeUpdateStart}
onElementsRemove={onElementsRemove}
> >
<Controls /> <Controls />
</ReactFlow> </ReactFlow>
+2 -1
View File
@@ -150,7 +150,8 @@ export default (EdgeComponent: ComponentType<EdgeProps>) => {
onConnectEdge, onConnectEdge,
isTarget, isTarget,
isValidConnection, isValidConnection,
connectionMode connectionMode,
isSourceHandle ? 'target' : 'source'
); );
}, },
[id, source, target, type, sourceHandleId, targetHandleId, setConnectionNodeId, setPosition, edgeElement] [id, source, target, type, sourceHandleId, targetHandleId, setConnectionNodeId, setPosition, edgeElement]
+4 -3
View File
@@ -12,6 +12,7 @@ import {
ConnectionMode, ConnectionMode,
SetConnectionId, SetConnectionId,
Connection, Connection,
HandleType,
} from '../../types'; } from '../../types';
type ValidConnectionFunc = (connection: Connection) => boolean; type ValidConnectionFunc = (connection: Connection) => boolean;
@@ -96,6 +97,7 @@ export function onMouseDown(
isTarget: boolean, isTarget: boolean,
isValidConnection: ValidConnectionFunc, isValidConnection: ValidConnectionFunc,
connectionMode: ConnectionMode, connectionMode: ConnectionMode,
elementEdgeUpdaterType?: HandleType | null,
onConnectStart?: OnConnectStartFunc, onConnectStart?: OnConnectStartFunc,
onConnectStop?: OnConnectStopFunc, onConnectStop?: OnConnectStopFunc,
onConnectEnd?: OnConnectEndFunc onConnectEnd?: OnConnectEndFunc
@@ -111,13 +113,12 @@ export function onMouseDown(
const elementBelow = doc.elementFromPoint(event.clientX, event.clientY); const elementBelow = doc.elementFromPoint(event.clientX, event.clientY);
const elementBelowIsTarget = elementBelow?.classList.contains('target'); const elementBelowIsTarget = elementBelow?.classList.contains('target');
const elementBelowIsSource = elementBelow?.classList.contains('source'); const elementBelowIsSource = elementBelow?.classList.contains('source');
const elementBelowIsUpdater = elementBelow?.classList.contains('react-flow__edgeupdater');
if (!reactFlowNode || (!elementBelowIsTarget && !elementBelowIsSource && !elementBelowIsUpdater)) { if (!reactFlowNode || (!elementBelowIsTarget && !elementBelowIsSource && !elementEdgeUpdaterType)) {
return; return;
} }
const handleType = elementBelowIsTarget ? 'target' : 'source'; const handleType = elementEdgeUpdaterType ? elementEdgeUpdaterType : elementBelowIsTarget ? 'target' : 'source';
const containerBounds = reactFlowNode.getBoundingClientRect(); const containerBounds = reactFlowNode.getBoundingClientRect();
let recentHoveredHandle: Element; let recentHoveredHandle: Element;
+3 -2
View File
@@ -45,12 +45,13 @@ const Handle: FC<HandleProps & Omit<HTMLAttributes<HTMLDivElement>, 'id'>> = ({
event, event,
handleId, handleId,
nodeId, nodeId,
(setConnectionNodeId as unknown) as SetSourceIdFunc, setConnectionNodeId as unknown as SetSourceIdFunc,
(setPosition as unknown) as SetPosition, setPosition as unknown as SetPosition,
onConnectExtended, onConnectExtended,
isTarget, isTarget,
isValidConnection, isValidConnection,
connectionMode, connectionMode,
null,
onConnectStart, onConnectStart,
onConnectStop, onConnectStop,
onConnectEnd onConnectEnd