import { memo } from 'react'; import BaseEdge from './BaseEdge'; import { getEdgeCenter } from './utils'; import type { EdgeProps } from '../../types'; export type GetStraightPathParams = { sourceX: number; sourceY: number; targetX: number; targetY: number; }; export function getStraightPath({ sourceX, sourceY, targetX, targetY, }: GetStraightPathParams): [path: string, labelX: number, labelY: number, offsetX: number, offsetY: number] { const [labelX, labelY, offsetX, offsetY] = getEdgeCenter({ sourceX, sourceY, targetX, targetY, }); return [`M ${sourceX},${sourceY}L ${targetX},${targetY}`, labelX, labelY, 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;