refactor(edge-labels): allow React component closes #1045

This commit is contained in:
moklick
2021-03-29 14:21:34 +02:00
parent f5bf40dd35
commit 66e7697e45
2 changed files with 14 additions and 7 deletions
+8 -1
View File
@@ -43,7 +43,14 @@ const initialElements: Elements = [
id: 'e5-6',
source: '5',
target: '6',
label: 'styled label',
label: (
<>
<tspan>i am using</tspan>
<tspan dy={10} x={0}>
{'<tspan>'}
</tspan>
</>
),
labelStyle: { fill: 'red', fontWeight: 700 },
arrowHeadType: ArrowHeadType.Arrow,
},
+6 -6
View File
@@ -1,4 +1,4 @@
import { CSSProperties, MouseEvent as ReactMouseEvent, HTMLAttributes } from 'react';
import { CSSProperties, MouseEvent as ReactMouseEvent, HTMLAttributes, ReactNode } from 'react';
import { Selection as D3Selection, ZoomBehavior } from 'd3';
export type ElementId = string;
@@ -63,7 +63,7 @@ export interface Edge<T = any> {
target: ElementId;
sourceHandle?: ElementId | null;
targetHandle?: ElementId | null;
label?: string;
label?: string | ReactNode;
labelStyle?: CSSProperties;
labelShowBg?: boolean;
labelBgStyle?: CSSProperties;
@@ -84,7 +84,7 @@ export enum BackgroundVariant {
export type HandleType = 'source' | 'target';
export type NodeTypesType = { [key: string]: React.ReactNode };
export type NodeTypesType = { [key: string]: ReactNode };
export type EdgeTypesType = NodeTypesType;
@@ -102,7 +102,7 @@ export interface WrapEdgeProps<T = any> {
onClick?: (event: React.MouseEvent, edge: Edge) => void;
selected: boolean;
animated?: boolean;
label?: string;
label?: string | ReactNode;
labelStyle?: CSSProperties;
labelShowBg?: boolean;
labelBgStyle?: CSSProperties;
@@ -144,7 +144,7 @@ export interface EdgeProps<T = any> {
animated?: boolean;
sourcePosition: Position;
targetPosition: Position;
label?: string;
label?: string | ReactNode;
labelStyle?: CSSProperties;
labelShowBg?: boolean;
labelBgStyle?: CSSProperties;
@@ -164,7 +164,7 @@ export interface EdgeSmoothStepProps<T = any> extends EdgeProps<T> {
export interface EdgeTextProps extends HTMLAttributes<SVGElement> {
x: number;
y: number;
label?: string;
label?: string | ReactNode;
labelStyle?: CSSProperties;
labelShowBg?: boolean;
labelBgStyle?: CSSProperties;