refactor(nodes): only observe node when not hidden
This commit is contained in:
@@ -33,7 +33,7 @@ const HiddenFlow = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setNodes(setHidden(isHidden));
|
setNodes(setHidden(isHidden));
|
||||||
setNodes(setHidden(isHidden));
|
setEdges(setHidden(isHidden));
|
||||||
}, [isHidden]);
|
}, [isHidden]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
Reference in New Issue
Block a user