refactor(components): show displayName in react profiler correctly

This commit is contained in:
moklick
2020-07-27 18:50:53 +02:00
parent 05786fcee6
commit 30e811225a
15 changed files with 643 additions and 649 deletions
+10 -5
View File
@@ -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);
+3 -5
View File
@@ -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);
+4 -6
View File
@@ -19,14 +19,13 @@ 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',
nodeBorderRadius = 5, nodeBorderRadius = 5,
maskColor = 'rgba(10, 10, 10, .25)', maskColor = 'rgba(10, 10, 10, .25)',
}: MiniMapProps) => { }: MiniMapProps) => {
const containerWidth = useStoreState((s) => s.width); const containerWidth = useStoreState((s) => s.width);
const containerHeight = useStoreState((s) => s.height); const containerHeight = useStoreState((s) => s.height);
const [tX, tY, tScale] = useStoreState((s) => s.transform); const [tX, tY, tScale] = useStoreState((s) => s.transform);
@@ -87,9 +86,8 @@ const MiniMap = memo(
/> />
</svg> </svg>
); );
} };
);
MiniMap.displayName = 'MiniMap'; MiniMap.displayName = 'MiniMap';
export default MiniMap; export default memo(MiniMap);
+3 -5
View File
@@ -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);
}; };
+4 -6
View File
@@ -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,
@@ -142,7 +141,7 @@ const BaseHandle = memo(
id = false, id = false,
isValidConnection, isValidConnection,
...rest ...rest
}: BaseHandleProps) => { }: BaseHandleProps) => {
const isTarget = type === 'target'; const isTarget = type === 'target';
const handleClasses = cc([ const handleClasses = cc([
'react-flow__handle', 'react-flow__handle',
@@ -168,9 +167,8 @@ const BaseHandle = memo(
{...rest} {...rest}
/> />
); );
} };
);
BaseHandle.displayName = 'BaseHandle'; BaseHandle.displayName = 'BaseHandle';
export default BaseHandle; export default memo(BaseHandle);
+4 -6
View File
@@ -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 = () => {},
@@ -17,7 +16,7 @@ const Handle = memo(
style, style,
className, className,
id, id,
}: HandleProps) => { }: HandleProps) => {
const nodeId = useContext(NodeIdContext) as ElementId; const nodeId = useContext(NodeIdContext) as ElementId;
const setPosition = useStoreActions((a) => a.setConnectionPosition); const setPosition = useStoreActions((a) => a.setConnectionPosition);
const setConnectionNodeId = useStoreActions((a) => a.setConnectionNodeId); const setConnectionNodeId = useStoreActions((a) => a.setConnectionNodeId);
@@ -42,9 +41,8 @@ const Handle = memo(
style={style} style={style}
/> />
); );
} };
);
Handle.displayName = 'Handle'; Handle.displayName = 'Handle';
export default Handle; export default memo(Handle);
+7 -4
View File
@@ -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 -3
View File
@@ -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 -3
View File
@@ -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);
+3 -5
View File
@@ -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 -3
View File
@@ -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>
); );
}); };
+3 -3
View File
@@ -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);
+4 -6
View File
@@ -62,8 +62,7 @@ export interface GraphViewProps {
zoomOnDoubleClick: boolean; zoomOnDoubleClick: boolean;
} }
const GraphView = memo( const GraphView = ({
({
nodeTypes, nodeTypes,
edgeTypes, edgeTypes,
onMove, onMove,
@@ -99,7 +98,7 @@ const GraphView = memo(
markerEndId, markerEndId,
zoomOnScroll, zoomOnScroll,
zoomOnDoubleClick, zoomOnDoubleClick,
}: GraphViewProps) => { }: GraphViewProps) => {
const zoomPane = useRef<HTMLDivElement>(null); const zoomPane = useRef<HTMLDivElement>(null);
const rendererNode = useRef<HTMLDivElement>(null); const rendererNode = useRef<HTMLDivElement>(null);
const width = useStoreState((s) => s.width); const width = useStoreState((s) => s.width);
@@ -253,9 +252,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);
+3 -3
View File
@@ -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);