diff --git a/packages/core/src/components/Handle/index.tsx b/packages/core/src/components/Handle/index.tsx index 90edfdf8..f4627d8a 100644 --- a/packages/core/src/components/Handle/index.tsx +++ b/packages/core/src/components/Handle/index.tsx @@ -16,6 +16,7 @@ export type HandleComponentProps = HandleProps & Omit ({ connectionStartHandle: s.connectionStartHandle, connectOnClick: s.connectOnClick, + noPanClassName: s.noPanClassName, }); const Handle = forwardRef( @@ -36,7 +37,7 @@ const Handle = forwardRef( ) => { const store = useStoreApi(); const nodeId = useContext(NodeIdContext) as string; - const { connectionStartHandle, connectOnClick } = useStore(selector, shallow); + const { connectionStartHandle, connectOnClick, noPanClassName } = useStore(selector, shallow); const handleId = id || null; const isTarget = type === 'target'; @@ -110,6 +111,7 @@ const Handle = forwardRef( 'react-flow__handle', `react-flow__handle-${position}`, 'nodrag', + noPanClassName, className, { source: !isTarget, diff --git a/packages/core/src/components/Nodes/wrapNode.tsx b/packages/core/src/components/Nodes/wrapNode.tsx index 22240063..ee540e27 100644 --- a/packages/core/src/components/Nodes/wrapNode.tsx +++ b/packages/core/src/components/Nodes/wrapNode.tsx @@ -151,7 +151,6 @@ export default (NodeComponent: ComponentType) => { className={cc([ 'react-flow__node', `react-flow__node-${type}`, - noPanClassName, className, { selected, diff --git a/packages/core/src/components/StoreUpdater/index.tsx b/packages/core/src/components/StoreUpdater/index.tsx index a5bc61e7..36bc858b 100644 --- a/packages/core/src/components/StoreUpdater/index.tsx +++ b/packages/core/src/components/StoreUpdater/index.tsx @@ -40,6 +40,7 @@ type StoreUpdaterProps = Pick< | 'onSelectionDragStart' | 'onSelectionDrag' | 'onSelectionDragStop' + | 'noPanClassName' >; const selector = (s: ReactFlowState) => ({ @@ -108,6 +109,7 @@ const StoreUpdater = ({ onSelectionDrag, onSelectionDragStart, onSelectionDragStop, + noPanClassName, }: StoreUpdaterProps) => { const { setNodes, @@ -154,6 +156,7 @@ const StoreUpdater = ({ useDirectStoreUpdater('onSelectionDrag', onSelectionDrag, store.setState); useDirectStoreUpdater('onSelectionDragStart', onSelectionDragStart, store.setState); useDirectStoreUpdater('onSelectionDragStop', onSelectionDragStop, store.setState); + useDirectStoreUpdater('noPanClassName', noPanClassName, store.setState); useStoreUpdater(nodes, setNodes); useStoreUpdater(edges, setEdges); diff --git a/packages/core/src/container/ReactFlow/index.tsx b/packages/core/src/container/ReactFlow/index.tsx index 26dad727..0cadc2a7 100644 --- a/packages/core/src/container/ReactFlow/index.tsx +++ b/packages/core/src/container/ReactFlow/index.tsx @@ -261,6 +261,7 @@ const ReactFlow = forwardRef( onSelectionDrag={onSelectionDrag} onSelectionDragStart={onSelectionDragStart} onSelectionDragStop={onSelectionDragStop} + noPanClassName={noPanClassName} /> {onSelectionChange && } {children} diff --git a/packages/core/src/store/initialState.ts b/packages/core/src/store/initialState.ts index 444deca4..db6b65a8 100644 --- a/packages/core/src/store/initialState.ts +++ b/packages/core/src/store/initialState.ts @@ -31,6 +31,7 @@ const initialState: ReactFlowStore = { connectionMode: ConnectionMode.Strict, domNode: null, paneDragging: false, + noPanClassName: 'nopan', snapGrid: [15, 15], snapToGrid: false, diff --git a/packages/core/src/types/general.ts b/packages/core/src/types/general.ts index 72e3f9e8..12b15ec5 100644 --- a/packages/core/src/types/general.ts +++ b/packages/core/src/types/general.ts @@ -140,6 +140,7 @@ export type ReactFlowStore = { hasDefaultEdges: boolean; domNode: HTMLDivElement | null; paneDragging: boolean; + noPanClassName: string; d3Zoom: ZoomBehavior | null; d3Selection: D3Selection | null;