feat(props): add onPaneContextMenu

This commit is contained in:
Nate Amack
2020-08-04 17:12:42 -06:00
parent 09fee4c6ea
commit 93aa5c96ca
3 changed files with 12 additions and 1 deletions
+7 -1
View File
@@ -42,6 +42,7 @@ export interface GraphViewProps {
onMoveStart?: (flowTransform?: FlowTransform) => void;
onMoveEnd?: (flowTransform?: FlowTransform) => void;
onPaneClick?: (evt: MouseEvent) => void;
onPaneContextMenu?: (evt: MouseEvent) => void;
selectionKeyCode: number;
nodeTypes: NodeTypesType;
edgeTypes: EdgeTypesType;
@@ -106,6 +107,7 @@ const GraphView = ({
zoomOnDoubleClick,
paneMoveable,
onPaneClick,
onPaneContextMenu,
}: GraphViewProps) => {
const isInitialised = useRef<boolean>(false);
const zoomPane = useRef<HTMLDivElement>(null);
@@ -130,6 +132,10 @@ const GraphView = ({
unsetNodesSelection();
}, [onPaneClick]);
const onZoomPaneContextMenu = useCallback((evt: React.MouseEvent) => {
onPaneContextMenu?.(evt);
}, [onPaneContextMenu]);
useResizeHandler(rendererNode);
useGlobalKeyHandler({ onElementsRemove, deleteKeyCode });
useElementUpdater(elements);
@@ -237,7 +243,7 @@ const GraphView = ({
/>
<UserSelection selectionKeyPressed={selectionKeyPressed} />
{nodesSelectionActive && <NodesSelection />}
<div className="react-flow__zoompane" onClick={onZoomPaneClick} ref={zoomPane} />
<div className="react-flow__zoompane" onClick={onZoomPaneClick} onContextMenu={onZoomPaneContextMenu} ref={zoomPane} />
</div>
);
};
+3
View File
@@ -51,6 +51,7 @@ export interface ReactFlowProps extends Omit<HTMLAttributes<HTMLDivElement>, 'on
onMoveEnd?: (flowTransform?: FlowTransform) => void;
onSelectionChange?: (elements: Elements | null) => void;
onPaneClick?: () => void;
onPaneContextMenu?: (evt: MouseEvent) => void;
nodeTypes: NodeTypesType;
edgeTypes: EdgeTypesType;
connectionLineType: ConnectionLineType;
@@ -119,6 +120,7 @@ const ReactFlow = ({
zoomOnDoubleClick,
paneMoveable,
onPaneClick,
onPaneContextMenu,
}: ReactFlowProps) => {
const nodeTypesParsed = useMemo(() => createNodeTypes(nodeTypes), []);
const edgeTypesParsed = useMemo(() => createEdgeTypes(edgeTypes), []);
@@ -167,6 +169,7 @@ const ReactFlow = ({
zoomOnDoubleClick={zoomOnDoubleClick}
paneMoveable={paneMoveable}
onPaneClick={onPaneClick}
onPaneContextMenu={onPaneContextMenu}
/>
{onSelectionChange && <SelectionListener onSelectionChange={onSelectionChange} />}
{children}