All files / src/components ReactDagEditor.tsx

100% Statements 10/10
100% Branches 4/4
100% Functions 1/1
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 431x 1x 1x           1x 1x 1x 1x               1x 10x       10x                                    
import * as React from "react";
import { defaultPort, line, rect, withDefaultPortsPosition } from "../built-in";
import {
  GraphConfig,
  GraphConfigContext,
  PropsAPI,
  PropsAPIContext
} from "../contexts";
import { DefaultErrorBoundary } from "./DefaultErrorBoundary";
import { RegisterEdge } from "./RegisterEdge";
import { RegisterNode } from "./RegisterNode";
import { RegisterPort } from "./RegisterPort";
 
interface IProps {
  style?: React.CSSProperties;
  className?: string;
  errorBoundary?: React.ComponentClass | React.FunctionComponent;
}
 
export const ReactDagEditor: React.FunctionComponent<IProps> = props => {
  const ErrorBoundary = props.errorBoundary
    ? props.errorBoundary
    : DefaultErrorBoundary;
 
  return (
    <ErrorBoundary>
      <GraphConfigContext.Provider value={new GraphConfig()}>
        <PropsAPIContext.Provider value={{ propsAPI: new PropsAPI() }}>
          <RegisterNode name="rect" config={withDefaultPortsPosition(rect)} />
          <RegisterEdge name="line" config={line} />
          <RegisterPort name="default" config={defaultPort} />
          <div
            style={props.style}
            className={`${props.className || ""} react-dag-editor-container`}
          >
            {props.children}
          </div>
        </PropsAPIContext.Provider>
      </GraphConfigContext.Provider>
    </ErrorBoundary>
  );
};