Merge pull request #374 from wbkd/develop
refactor(components): show displayName in react profiler correctly
This commit is contained in:
@@ -19,8 +19,14 @@ const defaultColors = {
|
|||||||
[BackgroundVariant.Lines]: '#eee',
|
[BackgroundVariant.Lines]: '#eee',
|
||||||
};
|
};
|
||||||
|
|
||||||
const Background = memo(
|
const Background = ({
|
||||||
({ variant = BackgroundVariant.Dots, gap = 24, size = 0.5, color, style, className }: BackgroundProps) => {
|
variant = BackgroundVariant.Dots,
|
||||||
|
gap = 24,
|
||||||
|
size = 0.5,
|
||||||
|
color,
|
||||||
|
style,
|
||||||
|
className,
|
||||||
|
}: BackgroundProps) => {
|
||||||
const [x, y, scale] = useStoreState((s) => s.transform);
|
const [x, y, scale] = useStoreState((s) => s.transform);
|
||||||
|
|
||||||
const bgClasses = cc(['react-flow__background', className]);
|
const bgClasses = cc(['react-flow__background', className]);
|
||||||
@@ -48,9 +54,8 @@ const Background = memo(
|
|||||||
}}
|
}}
|
||||||
></div>
|
></div>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
);
|
|
||||||
|
|
||||||
Background.displayName = 'Background';
|
Background.displayName = 'Background';
|
||||||
|
|
||||||
export default Background;
|
export default memo(Background);
|
||||||
|
|||||||
@@ -17,8 +17,7 @@ interface ControlProps extends React.HTMLAttributes<HTMLDivElement> {
|
|||||||
showInteractive?: boolean;
|
showInteractive?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Controls = memo(
|
const Controls = ({ style, showZoom = true, showFitView = true, showInteractive = true, className }: ControlProps) => {
|
||||||
({ style, showZoom = true, showFitView = true, showInteractive = true, className }: ControlProps) => {
|
|
||||||
const setInteractive = useStoreActions((actions) => actions.setInteractive);
|
const setInteractive = useStoreActions((actions) => actions.setInteractive);
|
||||||
const fitView = useStoreActions((actions) => actions.fitView);
|
const fitView = useStoreActions((actions) => actions.fitView);
|
||||||
const zoomIn = useStoreActions((actions) => actions.zoomIn);
|
const zoomIn = useStoreActions((actions) => actions.zoomIn);
|
||||||
@@ -57,9 +56,8 @@ const Controls = memo(
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
);
|
|
||||||
|
|
||||||
Controls.displayName = 'Controls';
|
Controls.displayName = 'Controls';
|
||||||
|
|
||||||
export default Controls;
|
export default memo(Controls);
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ interface MiniMapNodeProps {
|
|||||||
style?: CSSProperties;
|
style?: CSSProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
const MiniMapNode = memo(({ x, y, width, height, style, color, borderRadius }: MiniMapNodeProps) => {
|
const MiniMapNode = ({ x, y, width, height, style, color, borderRadius }: MiniMapNodeProps) => {
|
||||||
const { background, backgroundColor } = style || {};
|
const { background, backgroundColor } = style || {};
|
||||||
const fill = (color || background || backgroundColor) as string;
|
const fill = (color || background || backgroundColor) as string;
|
||||||
|
|
||||||
@@ -26,8 +26,8 @@ const MiniMapNode = memo(({ x, y, width, height, style, color, borderRadius }: M
|
|||||||
fill={fill}
|
fill={fill}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
});
|
};
|
||||||
|
|
||||||
MiniMapNode.displayName = 'MiniMapNode';
|
MiniMapNode.displayName = 'MiniMapNode';
|
||||||
|
|
||||||
export default MiniMapNode;
|
export default memo(MiniMapNode);
|
||||||
|
|||||||
@@ -19,8 +19,7 @@ interface MiniMapProps extends React.HTMLAttributes<SVGSVGElement> {
|
|||||||
const defaultWidth = 200;
|
const defaultWidth = 200;
|
||||||
const defaultHeight = 150;
|
const defaultHeight = 150;
|
||||||
|
|
||||||
const MiniMap = memo(
|
const MiniMap = ({
|
||||||
({
|
|
||||||
style = { backgroundColor: '#f8f8f8' },
|
style = { backgroundColor: '#f8f8f8' },
|
||||||
className,
|
className,
|
||||||
nodeColor = '#ddd',
|
nodeColor = '#ddd',
|
||||||
@@ -87,9 +86,8 @@ const MiniMap = memo(
|
|||||||
/>
|
/>
|
||||||
</svg>
|
</svg>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
);
|
|
||||||
|
|
||||||
MiniMap.displayName = 'MiniMap';
|
MiniMap.displayName = 'MiniMap';
|
||||||
|
|
||||||
export default MiniMap;
|
export default memo(MiniMap);
|
||||||
|
|||||||
@@ -23,8 +23,7 @@ interface EdgeWrapperProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default (EdgeComponent: ComponentType<EdgeCompProps>) => {
|
export default (EdgeComponent: ComponentType<EdgeCompProps>) => {
|
||||||
const EdgeWrapper = memo(
|
const EdgeWrapper = ({
|
||||||
({
|
|
||||||
id,
|
id,
|
||||||
source,
|
source,
|
||||||
target,
|
target,
|
||||||
@@ -83,10 +82,9 @@ export default (EdgeComponent: ComponentType<EdgeCompProps>) => {
|
|||||||
/>
|
/>
|
||||||
</g>
|
</g>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
);
|
|
||||||
|
|
||||||
EdgeWrapper.displayName = 'EdgeWrapper';
|
EdgeWrapper.displayName = 'EdgeWrapper';
|
||||||
|
|
||||||
return EdgeWrapper;
|
return memo(EdgeWrapper);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -130,8 +130,7 @@ function onMouseDown(
|
|||||||
document.addEventListener('mouseup', onMouseUp);
|
document.addEventListener('mouseup', onMouseUp);
|
||||||
}
|
}
|
||||||
|
|
||||||
const BaseHandle = memo(
|
const BaseHandle = ({
|
||||||
({
|
|
||||||
type,
|
type,
|
||||||
nodeId,
|
nodeId,
|
||||||
onConnect,
|
onConnect,
|
||||||
@@ -168,9 +167,8 @@ const BaseHandle = memo(
|
|||||||
{...rest}
|
{...rest}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
);
|
|
||||||
|
|
||||||
BaseHandle.displayName = 'BaseHandle';
|
BaseHandle.displayName = 'BaseHandle';
|
||||||
|
|
||||||
export default BaseHandle;
|
export default memo(BaseHandle);
|
||||||
|
|||||||
@@ -7,8 +7,7 @@ import NodeIdContext from '../../contexts/NodeIdContext';
|
|||||||
|
|
||||||
import { HandleProps, ElementId, Position, Connection } from '../../types';
|
import { HandleProps, ElementId, Position, Connection } from '../../types';
|
||||||
|
|
||||||
const Handle = memo(
|
const Handle = ({
|
||||||
({
|
|
||||||
type = 'source',
|
type = 'source',
|
||||||
position = Position.Top,
|
position = Position.Top,
|
||||||
onConnect = () => {},
|
onConnect = () => {},
|
||||||
@@ -42,9 +41,8 @@ const Handle = memo(
|
|||||||
style={style}
|
style={style}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
);
|
|
||||||
|
|
||||||
Handle.displayName = 'Handle';
|
Handle.displayName = 'Handle';
|
||||||
|
|
||||||
export default Handle;
|
export default memo(Handle);
|
||||||
|
|||||||
@@ -3,16 +3,19 @@ import React, { memo } from 'react';
|
|||||||
import Handle from '../../components/Handle';
|
import Handle from '../../components/Handle';
|
||||||
import { NodeProps, Position } from '../../types';
|
import { NodeProps, Position } from '../../types';
|
||||||
|
|
||||||
const DefaultNode = memo(
|
const DefaultNode = ({
|
||||||
({ data, isConnectable, targetPosition = Position.Top, sourcePosition = Position.Bottom }: NodeProps) => (
|
data,
|
||||||
|
isConnectable,
|
||||||
|
targetPosition = Position.Top,
|
||||||
|
sourcePosition = Position.Bottom,
|
||||||
|
}: NodeProps) => (
|
||||||
<>
|
<>
|
||||||
<Handle type="target" position={targetPosition} isConnectable={isConnectable} />
|
<Handle type="target" position={targetPosition} isConnectable={isConnectable} />
|
||||||
{data.label}
|
{data.label}
|
||||||
<Handle type="source" position={sourcePosition} isConnectable={isConnectable} />
|
<Handle type="source" position={sourcePosition} isConnectable={isConnectable} />
|
||||||
</>
|
</>
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
DefaultNode.displayName = 'DefaultNode';
|
DefaultNode.displayName = 'DefaultNode';
|
||||||
|
|
||||||
export default DefaultNode;
|
export default memo(DefaultNode);
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ import React, { memo } from 'react';
|
|||||||
import Handle from '../../components/Handle';
|
import Handle from '../../components/Handle';
|
||||||
import { NodeProps, Position } from '../../types';
|
import { NodeProps, Position } from '../../types';
|
||||||
|
|
||||||
const InputNode = memo(({ data, isConnectable, sourcePosition = Position.Bottom }: NodeProps) => (
|
const InputNode = ({ data, isConnectable, sourcePosition = Position.Bottom }: NodeProps) => (
|
||||||
<>
|
<>
|
||||||
{data.label}
|
{data.label}
|
||||||
<Handle type="source" position={sourcePosition} isConnectable={isConnectable} />
|
<Handle type="source" position={sourcePosition} isConnectable={isConnectable} />
|
||||||
</>
|
</>
|
||||||
));
|
);
|
||||||
|
|
||||||
InputNode.displayName = 'InputNode';
|
InputNode.displayName = 'InputNode';
|
||||||
|
|
||||||
export default InputNode;
|
export default memo(InputNode);
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ import React, { memo } from 'react';
|
|||||||
import Handle from '../../components/Handle';
|
import Handle from '../../components/Handle';
|
||||||
import { NodeProps, Position } from '../../types';
|
import { NodeProps, Position } from '../../types';
|
||||||
|
|
||||||
const OutputNode = memo(({ data, isConnectable, targetPosition = Position.Top }: NodeProps) => (
|
const OutputNode = ({ data, isConnectable, targetPosition = Position.Top }: NodeProps) => (
|
||||||
<>
|
<>
|
||||||
<Handle type="target" position={targetPosition} isConnectable={isConnectable} />
|
<Handle type="target" position={targetPosition} isConnectable={isConnectable} />
|
||||||
{data.label}
|
{data.label}
|
||||||
</>
|
</>
|
||||||
));
|
);
|
||||||
|
|
||||||
OutputNode.displayName = 'OutputNode';
|
OutputNode.displayName = 'OutputNode';
|
||||||
|
|
||||||
export default OutputNode;
|
export default memo(OutputNode);
|
||||||
|
|||||||
@@ -160,8 +160,7 @@ const onStop = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
export default (NodeComponent: ComponentType<NodeComponentProps>) => {
|
export default (NodeComponent: ComponentType<NodeComponentProps>) => {
|
||||||
const NodeWrapper = memo(
|
const NodeWrapper = ({
|
||||||
({
|
|
||||||
id,
|
id,
|
||||||
type,
|
type,
|
||||||
data,
|
data,
|
||||||
@@ -342,10 +341,9 @@ export default (NodeComponent: ComponentType<NodeComponentProps>) => {
|
|||||||
</div>
|
</div>
|
||||||
</DraggableCore>
|
</DraggableCore>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
);
|
|
||||||
|
|
||||||
NodeWrapper.displayName = 'NodeWrapper';
|
NodeWrapper.displayName = 'NodeWrapper';
|
||||||
|
|
||||||
return NodeWrapper;
|
return memo(NodeWrapper);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* made a selectio with on or several nodes
|
* made a selectio with on or several nodes
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useState, memo } from 'react';
|
import React, { useState } from 'react';
|
||||||
import ReactDraggable from 'react-draggable';
|
import ReactDraggable from 'react-draggable';
|
||||||
|
|
||||||
import { useStoreState, useStoreActions } from '../../store/hooks';
|
import { useStoreState, useStoreActions } from '../../store/hooks';
|
||||||
@@ -27,7 +27,7 @@ function getStartPositions(nodes: Node[]): StartPositions {
|
|||||||
}, startPositions);
|
}, startPositions);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default memo(() => {
|
export default () => {
|
||||||
const [offset, setOffset] = useState<XYPosition>({ x: 0, y: 0 });
|
const [offset, setOffset] = useState<XYPosition>({ x: 0, y: 0 });
|
||||||
const [startPositions, setStartPositions] = useState<StartPositions>({});
|
const [startPositions, setStartPositions] = useState<StartPositions>({});
|
||||||
const [tX, tY, tScale] = useStoreState((s) => s.transform);
|
const [tX, tY, tScale] = useStoreState((s) => s.transform);
|
||||||
@@ -110,4 +110,4 @@ export default memo(() => {
|
|||||||
</ReactDraggable>
|
</ReactDraggable>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
});
|
};
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ function renderEdge(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const EdgeRenderer = memo((props: EdgeRendererProps) => {
|
const EdgeRenderer = (props: EdgeRendererProps) => {
|
||||||
const [tX, tY, tScale] = useStoreState((s) => s.transform);
|
const [tX, tY, tScale] = useStoreState((s) => s.transform);
|
||||||
const edges = useStoreState((s) => s.edges);
|
const edges = useStoreState((s) => s.edges);
|
||||||
const nodes = useStoreState((s) => s.nodes);
|
const nodes = useStoreState((s) => s.nodes);
|
||||||
@@ -234,8 +234,8 @@ const EdgeRenderer = memo((props: EdgeRendererProps) => {
|
|||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
);
|
);
|
||||||
});
|
};
|
||||||
|
|
||||||
EdgeRenderer.displayName = 'EdgeRenderer';
|
EdgeRenderer.displayName = 'EdgeRenderer';
|
||||||
|
|
||||||
export default EdgeRenderer;
|
export default memo(EdgeRenderer);
|
||||||
|
|||||||
@@ -62,8 +62,7 @@ export interface GraphViewProps {
|
|||||||
zoomOnDoubleClick: boolean;
|
zoomOnDoubleClick: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const GraphView = memo(
|
const GraphView = ({
|
||||||
({
|
|
||||||
nodeTypes,
|
nodeTypes,
|
||||||
edgeTypes,
|
edgeTypes,
|
||||||
onMove,
|
onMove,
|
||||||
@@ -142,6 +141,7 @@ const GraphView = memo(
|
|||||||
updateDimensions();
|
updateDimensions();
|
||||||
window.onresize = updateDimensions;
|
window.onresize = updateDimensions;
|
||||||
|
|
||||||
|
|
||||||
if (rendererNode.current) {
|
if (rendererNode.current) {
|
||||||
resizeObserver = new ResizeObserver((entries) => {
|
resizeObserver = new ResizeObserver((entries) => {
|
||||||
for (let _ of entries) {
|
for (let _ of entries) {
|
||||||
@@ -255,9 +255,8 @@ const GraphView = memo(
|
|||||||
<div className="react-flow__zoompane" onClick={onZoomPaneClick} ref={zoomPane} />
|
<div className="react-flow__zoompane" onClick={onZoomPaneClick} ref={zoomPane} />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
);
|
|
||||||
|
|
||||||
GraphView.displayName = 'GraphView';
|
GraphView.displayName = 'GraphView';
|
||||||
|
|
||||||
export default GraphView;
|
export default memo(GraphView);
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ function renderNode(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const NodeRenderer = memo(({ onlyRenderVisibleNodes = true, ...props }: NodeRendererProps) => {
|
const NodeRenderer = ({ onlyRenderVisibleNodes = true, ...props }: NodeRendererProps) => {
|
||||||
const nodes = useStoreState((s) => s.nodes);
|
const nodes = useStoreState((s) => s.nodes);
|
||||||
const transform = useStoreState((s) => s.transform);
|
const transform = useStoreState((s) => s.transform);
|
||||||
const selectedElements = useStoreState((s) => s.selectedElements);
|
const selectedElements = useStoreState((s) => s.selectedElements);
|
||||||
@@ -94,8 +94,8 @@ const NodeRenderer = memo(({ onlyRenderVisibleNodes = true, ...props }: NodeRend
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
});
|
};
|
||||||
|
|
||||||
NodeRenderer.displayName = 'NodeRenderer';
|
NodeRenderer.displayName = 'NodeRenderer';
|
||||||
|
|
||||||
export default NodeRenderer;
|
export default memo(NodeRenderer);
|
||||||
|
|||||||
Reference in New Issue
Block a user