feat: add onPaneScroll event handler

- add the possibility to listen to the onWheel event
  - add event handler to interaction demo
This commit is contained in:
Emiel Wit
2020-09-02 10:23:39 +02:00
parent c26528041a
commit 394c0ab53c
3 changed files with 30 additions and 2 deletions
+11 -1
View File
@@ -1,4 +1,4 @@
import React, { useEffect, useRef, useCallback, memo, CSSProperties, MouseEvent } from 'react';
import React, { useEffect, useRef, useCallback, memo, CSSProperties, MouseEvent, WheelEvent } from 'react';
import { useStoreState, useStoreActions, useStore } from '../../store/hooks';
import NodeRenderer from '../NodeRenderer';
@@ -44,6 +44,7 @@ export interface GraphViewProps {
onMove?: (flowTransform?: FlowTransform) => void;
onMoveStart?: (flowTransform?: FlowTransform) => void;
onMoveEnd?: (flowTransform?: FlowTransform) => void;
onPaneScroll?: (event?: WheelEvent) => void;
onPaneClick?: (event: MouseEvent) => void;
onPaneContextMenu?: (event: MouseEvent) => void;
onSelectionDragStart?: (event: MouseEvent, nodes: Node[]) => void;
@@ -117,6 +118,7 @@ const GraphView = ({
zoomOnDoubleClick,
paneMoveable,
onPaneClick,
onPaneScroll,
onPaneContextMenu,
}: GraphViewProps) => {
const isInitialised = useRef<boolean>(false);
@@ -155,6 +157,13 @@ const GraphView = ({
[onPaneContextMenu]
);
const onZoomPaneScroll = useCallback(
(event: WheelEvent) => {
onPaneScroll?.(event);
},
[onPaneScroll]
);
useResizeHandler(rendererNode);
useGlobalKeyHandler({ onElementsRemove, deleteKeyCode });
useElementUpdater(elements);
@@ -279,6 +288,7 @@ const GraphView = ({
className="react-flow__zoompane"
onClick={onZoomPaneClick}
onContextMenu={onZoomPaneContextMenu}
onWheel={onZoomPaneScroll}
ref={zoomPane}
/>
</div>