import { useState, useCallback } from 'react';
import { observer } from 'mobx-react';
import { Edge } from '../types';
import DefaultRemoveConnector from '../components/DefaultRemoveConnector';
interface ElementProps {
element: Edge;
}
export interface WithRemoveConnectorProps {
onShowRemoveConnector?: () => void;
onHideRemoveConnector?: () => void;
}
type RemoveRenderer = (edge: Edge, onRemove: (e: Edge) => void, size?: number) => React.ReactElement;
const defaultRenderRemove: RemoveRenderer = (edge: Edge, onRemove: (e: Edge) => void) => {
const removeEdge = () => {
onRemove(edge);
};
return (
( onRemove: (edge: Edge) => void, renderRemove: RemoveRenderer = defaultRenderRemove ) => (WrappedComponent: React.ComponentType
) => {
const Component: React.FunctionComponent