refactor(nodes): don't re-render on pan #677

This commit is contained in:
moklick
2020-11-10 17:06:18 +01:00
parent 959216f6fc
commit 5e28762f53
3 changed files with 7 additions and 7 deletions
+2 -2
View File
@@ -12,7 +12,7 @@ export default (NodeComponent: ComponentType<NodeComponentProps>) => {
id,
type,
data,
transform,
scale,
xPos,
yPos,
selected,
@@ -199,7 +199,7 @@ export default (NodeComponent: ComponentType<NodeComponentProps>) => {
onStart={onDragStart}
onDrag={onDrag}
onStop={onDragStop}
scale={transform[2]}
scale={scale}
disabled={!isDraggable}
cancel=".nodrag"
nodeRef={nodeElement}
+4 -4
View File
@@ -2,7 +2,7 @@ import React, { memo, ComponentType, MouseEvent } from 'react';
import { useStoreState } from '../../store/hooks';
import { getNodesInside } from '../../utils/graph';
import { Node, Transform, NodeTypesType, WrapNodeProps, Elements, Edge } from '../../types';
import { Node, NodeTypesType, WrapNodeProps, Elements, Edge } from '../../types';
interface NodeRendererProps {
nodeTypes: NodeTypesType;
@@ -22,7 +22,7 @@ interface NodeRendererProps {
function renderNode(
node: Node,
props: NodeRendererProps,
transform: Transform,
scale: number,
selectedElements: Elements | null,
nodesDraggable: boolean,
nodesConnectable: boolean,
@@ -57,7 +57,7 @@ function renderNode(
onContextMenu={props.onNodeContextMenu}
onNodeDragStart={props.onNodeDragStart}
onNodeDragStop={props.onNodeDragStop}
transform={transform}
scale={scale}
selected={isSelected}
style={node.style}
className={node.className}
@@ -93,7 +93,7 @@ const NodeRenderer = (props: NodeRendererProps) => {
return (
<div className="react-flow__nodes" style={transformStyle}>
{renderNodes.map((node) =>
renderNode(node, props, transform, selectedElements, nodesDraggable, nodesConnectable, elementsSelectable)
renderNode(node, props, transform[2], selectedElements, nodesDraggable, nodesConnectable, elementsSelectable)
)}
</div>
);
+1 -1
View File
@@ -201,7 +201,7 @@ export interface WrapNodeProps {
type: string;
data: any;
selected: boolean;
transform: Transform;
scale: number;
xPos: number;
yPos: number;
isSelectable: boolean;