refactor(nodeTypes/edgeTypes): show warning when not memoized closes #1620

This commit is contained in:
moklick
2022-02-22 18:33:59 +01:00
parent a45af5f0f8
commit 6630935d9e
17 changed files with 82 additions and 40 deletions
+7 -5
View File
@@ -5,7 +5,7 @@ import wrapEdge from '../../components/Edges/wrapEdge';
import { rectToBox } from '../../utils';
import {
EdgeTypesType,
EdgeTypes,
EdgeProps,
HandleElement,
Position,
@@ -16,16 +16,18 @@ import {
NodeHandleBounds,
} from '../../types';
export function createEdgeTypes(edgeTypes: EdgeTypesType): EdgeTypesType {
const standardTypes: EdgeTypesType = {
export type CreateEdgeTypes = (edgeTypes: EdgeTypes) => EdgeTypes;
export function createEdgeTypes(edgeTypes: EdgeTypes): EdgeTypes {
const standardTypes: EdgeTypes = {
default: wrapEdge((edgeTypes.default || BezierEdge) as ComponentType<EdgeProps>),
straight: wrapEdge((edgeTypes.bezier || StraightEdge) as ComponentType<EdgeProps>),
step: wrapEdge((edgeTypes.step || StepEdge) as ComponentType<EdgeProps>),
smoothstep: wrapEdge((edgeTypes.step || SmoothStepEdge) as ComponentType<EdgeProps>),
};
const wrappedTypes = {} as EdgeTypesType;
const specialTypes: EdgeTypesType = Object.keys(edgeTypes)
const wrappedTypes = {} as EdgeTypes;
const specialTypes: EdgeTypes = Object.keys(edgeTypes)
.filter((k) => !['default', 'bezier'].includes(k))
.reduce((res, key) => {
res[key] = wrapEdge((edgeTypes[key] || BezierEdge) as ComponentType<EdgeProps>);