diff --git a/src/components/Edges/EdgeAnchor.tsx b/src/components/Edges/EdgeAnchor.tsx new file mode 100644 index 00000000..a452ef39 --- /dev/null +++ b/src/components/Edges/EdgeAnchor.tsx @@ -0,0 +1,42 @@ +import React from 'react'; + +import { Position } from '../../types'; + +const shiftX = (x: number, shift: number, position: Position) => { + if (position === Position.Left) return x - shift; + if (position === Position.Right) return x + shift; + return x; +} + +const shiftY = (y: number, shift: number, position: Position) => { + if (position === Position.Top) return y - shift; + if (position === Position.Bottom) return y + shift; + return y; +} + +export interface EdgeAnchorProps { + className?: string + position: Position + centerX: number + centerY: number + radius?: number +} + +export const EdgeAnchor = ({ + className = "react-flow__edgeupdater", + position, + centerX, + centerY, + radius = 10 +}: EdgeAnchorProps): JSX.Element => { + return ( + + ); +} diff --git a/src/components/Edges/wrapEdge.tsx b/src/components/Edges/wrapEdge.tsx index 509974b1..0185f298 100644 --- a/src/components/Edges/wrapEdge.tsx +++ b/src/components/Edges/wrapEdge.tsx @@ -4,6 +4,7 @@ import cc from 'classcat'; import { useStoreActions, useStoreState } from '../../store/hooks'; import { Edge, EdgeProps, WrapEdgeProps } from '../../types'; import { onMouseDown } from '../../components/Handle/handler'; +import { EdgeAnchor } from './EdgeAnchor'; export default (EdgeComponent: ComponentType) => { const EdgeWrapper = ({ @@ -146,13 +147,10 @@ export default (EdgeComponent: ComponentType) => { onMouseEnter={onEdgeUpdaterMouseEnter} onMouseOut={onEdgeUpdaterMouseOut} > - )} @@ -187,13 +185,10 @@ export default (EdgeComponent: ComponentType) => { onMouseEnter={onEdgeUpdaterMouseEnter} onMouseOut={onEdgeUpdaterMouseOut} > - )}