refactor(nodes): only observe node when not hidden

This commit is contained in:
moklick
2021-11-23 17:58:53 +01:00
parent 11b7fa7042
commit 8a095df192
3 changed files with 7 additions and 4 deletions
+1 -1
View File
@@ -33,7 +33,7 @@ const HiddenFlow = () => {
useEffect(() => { useEffect(() => {
setNodes(setHidden(isHidden)); setNodes(setHidden(isHidden));
setNodes(setHidden(isHidden)); setEdges(setHidden(isHidden));
}, [isHidden]); }, [isHidden]);
return ( return (
+2 -2
View File
@@ -204,13 +204,13 @@ export default (NodeComponent: ComponentType<NodeProps>) => {
); );
useEffect(() => { useEffect(() => {
if (nodeElement.current) { if (nodeElement.current && !hidden) {
const currNode = nodeElement.current; const currNode = nodeElement.current;
resizeObserver?.observe(currNode); resizeObserver?.observe(currNode);
return () => resizeObserver?.unobserve(currNode); return () => resizeObserver?.unobserve(currNode);
} }
}, []); }, [hidden]);
if (hidden) { if (hidden) {
return null; return null;
+4 -1
View File
@@ -41,6 +41,7 @@ interface EdgeRendererProps {
interface EdgeWrapperProps { interface EdgeWrapperProps {
edge: Edge; edge: Edge;
hidden: boolean;
edgeTypes: any; edgeTypes: any;
markerEndId?: string; markerEndId?: string;
onEdgeClick?: (event: React.MouseEvent, node: Edge) => void; onEdgeClick?: (event: React.MouseEvent, node: Edge) => void;
@@ -71,6 +72,7 @@ interface EdgeWrapperProps {
const Edge = memo( const Edge = memo(
({ ({
edge, edge,
hidden,
edgeTypes, edgeTypes,
markerEndId, markerEndId,
onEdgeClick, onEdgeClick,
@@ -194,7 +196,7 @@ const Edge = memo(
targetPosition={targetPosition} targetPosition={targetPosition}
elementsSelectable={elementsSelectable} elementsSelectable={elementsSelectable}
markerEndId={markerEndId} markerEndId={markerEndId}
hidden={edge.hidden} hidden={hidden}
onConnectEdge={onConnectEdge} onConnectEdge={onConnectEdge}
handleEdgeUpdate={typeof onEdgeUpdate !== 'undefined'} handleEdgeUpdate={typeof onEdgeUpdate !== 'undefined'}
onContextMenu={onEdgeContextMenu} onContextMenu={onEdgeContextMenu}
@@ -265,6 +267,7 @@ const EdgeRenderer = (props: EdgeRendererProps) => {
<Edge <Edge
key={edge.id} key={edge.id}
edge={edge} edge={edge}
hidden={!!edge.hidden}
sourceNodeWidth={sourceNode?.width} sourceNodeWidth={sourceNode?.width}
sourceNodeHeight={sourceNode?.height} sourceNodeHeight={sourceNode?.height}
sourceNodeX={sourceNode?.positionAbsolute?.x} sourceNodeX={sourceNode?.positionAbsolute?.x}