|
| 1 | +import { BezierEdge, BaseEdge } from '@xyflow/react' |
1 | 2 | import React from 'react' |
2 | | -import { BezierEdge, BaseEdge } from 'reactflow' |
3 | 3 | import { getSmartEdge } from '../getSmartEdge' |
| 4 | +import type { |
| 5 | + DefaultEdgeDataType, |
| 6 | + DefaultNodeDataType |
| 7 | +} from './SmartEdge.types' |
4 | 8 | import type { GetSmartEdgeOptions } from '../getSmartEdge' |
5 | | -import type { EdgeProps, Node } from 'reactflow' |
| 9 | +import type { EdgeProps, Node, StepEdge, StraightEdge } from '@xyflow/react' |
6 | 10 |
|
7 | | -export type EdgeElement = typeof BezierEdge |
| 11 | +export type EdgeElement = |
| 12 | + | typeof BezierEdge |
| 13 | + | typeof StepEdge |
| 14 | + | typeof StraightEdge |
8 | 15 |
|
9 | 16 | export type SmartEdgeOptions = GetSmartEdgeOptions & { |
10 | 17 | fallback?: EdgeElement |
11 | 18 | } |
12 | 19 |
|
13 | | -export interface SmartEdgeProps<EdgeDataType = unknown, NodeDataType = unknown> |
14 | | - extends EdgeProps<EdgeDataType> { |
| 20 | +export interface SmartEdgeProps< |
| 21 | + EdgeDataType extends DefaultEdgeDataType = DefaultEdgeDataType, |
| 22 | + NodeDataType extends DefaultNodeDataType = DefaultNodeDataType |
| 23 | +> extends EdgeProps<EdgeDataType> { |
15 | 24 | nodes: Node<NodeDataType>[] |
16 | 25 | options: SmartEdgeOptions |
17 | 26 | } |
18 | 27 |
|
19 | | -export function SmartEdge<EdgeDataType = unknown, NodeDataType = unknown>({ |
| 28 | +export function SmartEdge< |
| 29 | + EdgeDataType extends DefaultEdgeDataType = DefaultEdgeDataType, |
| 30 | + NodeDataType extends DefaultNodeDataType = DefaultNodeDataType |
| 31 | +>({ |
20 | 32 | nodes, |
21 | 33 | options, |
22 | 34 | ...edgeProps |
|
0 commit comments