diff --git a/packages/module/src/components/edges/DefaultEdge.tsx b/packages/module/src/components/edges/DefaultEdge.tsx index 3431d5b4..f5196012 100644 --- a/packages/module/src/components/edges/DefaultEdge.tsx +++ b/packages/module/src/components/edges/DefaultEdge.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import * as _ from 'lodash'; import { observer } from 'mobx-react'; -import { Edge, EdgeTerminalType, GraphElement, isEdge, isNode, NodeStatus } from '../../types'; +import { Edge, EdgeTerminalType, GraphElement, isEdge, isNode, NodeStatus, ScaleDetailsLevel } from '../../types'; import { ConnectDragSource, OnSelect } from '../../behavior'; import { getClosestVisibleParent, useHover } from '../../utils'; import { Layer } from '../layers'; @@ -112,6 +112,8 @@ const DefaultEdgeInner: React.FunctionComponent = observe return null; } + const detailsLevel = element.getGraph().getDetailsLevel(); + const groupClassName = css( styles.topologyEdge, className, @@ -126,9 +128,8 @@ const DefaultEdgeInner: React.FunctionComponent = observe const bendpoints = element.getBendpoints(); - const d = `M${startPoint.x} ${startPoint.y} ${bendpoints.map((b: Point) => `L${b.x} ${b.y} `).join('')}L${ - endPoint.x - } ${endPoint.y}`; + const d = `M${startPoint.x} ${startPoint.y} ${bendpoints.map((b: Point) => `L${b.x} ${b.y} `).join('')}L${endPoint.x + } ${endPoint.y}`; const bgStartPoint = !startTerminalType || startTerminalType === EdgeTerminalType.none @@ -141,6 +142,11 @@ const DefaultEdgeInner: React.FunctionComponent = observe const backgroundPath = `M${bgStartPoint[0]} ${bgStartPoint[1]} ${bendpoints .map((b: Point) => `L${b.x} ${b.y} `) .join('')}L${bgEndPoint[0]} ${bgEndPoint[1]}`; + + const showTag = tag && (detailsLevel === ScaleDetailsLevel.high || hover); + const scale = element.getGraph().getScale(); + const tagScale = hover && !(detailsLevel === ScaleDetailsLevel.high) ? Math.max(1, 1 / scale) : 1; + const tagPositionScale = hover && !(detailsLevel === ScaleDetailsLevel.high) ? Math.min(1, scale) : 1; return ( @@ -158,14 +164,16 @@ const DefaultEdgeInner: React.FunctionComponent = observe onMouseLeave={onHideRemoveConnector} /> - {tag && ( - + {showTag && ( + + + )} = observe ); }); -const DefaultEdge: React.FunctionComponent= ({ +const DefaultEdge: React.FunctionComponent = ({ element, startTerminalType = EdgeTerminalType.none, startTerminalSize = 14,