import { memo } from 'react'; import BaseEdge from './BaseEdge'; import { EdgeProps } from '../../types'; import { getSimpleEdgeCenter } from './utils'; export type GetStraightPathParams = { sourceX: number; sourceY: number; targetX: number; targetY: number; }; export function getStraightPath({ sourceX, sourceY, targetX, targetY, }: GetStraightPathParams): [string, number, number, number, number] { const [centerX, centerY, offsetX, offsetY] = getSimpleEdgeCenter({ sourceX, sourceY, targetX, targetY, }); return [`M ${sourceX},${sourceY}L ${targetX},${targetY}`, centerX, centerY, offsetX, offsetY]; } const StraightEdge = memo( ({ sourceX, sourceY, targetX, targetY, label, labelStyle, labelShowBg, labelBgStyle, labelBgPadding, labelBgBorderRadius, style, markerEnd, markerStart, interactionWidth, }: EdgeProps) => { const [path, labelX, labelY] = getStraightPath({ sourceX, sourceY, targetX, targetY }); return ( ); } ); StraightEdge.displayName = 'StraightEdge'; export default StraightEdge;