refactor(resizeObserver): check if available
This commit is contained in:
@@ -167,9 +167,9 @@ export default (NodeComponent: ComponentType<NodeComponentProps>) => {
|
||||
useEffect(() => {
|
||||
if (nodeElement.current) {
|
||||
const currNode = nodeElement.current;
|
||||
resizeObserver.observe(currNode);
|
||||
resizeObserver?.observe(currNode);
|
||||
|
||||
return () => resizeObserver.unobserve(currNode);
|
||||
return () => resizeObserver?.unobserve(currNode);
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
@@ -38,18 +38,20 @@ const NodeRenderer = (props: NodeRendererProps) => {
|
||||
[transform[0], transform[1], transform[2]]
|
||||
);
|
||||
|
||||
const resizeObserver = useMemo(
|
||||
() =>
|
||||
new ResizeObserver((entries) => {
|
||||
const updates = entries.map((entry) => ({
|
||||
id: entry.target.getAttribute('data-id') as string,
|
||||
nodeElement: entry.target as HTMLDivElement,
|
||||
}));
|
||||
const resizeObserver = useMemo(() => {
|
||||
if (typeof ResizeObserver === 'undefined') {
|
||||
return null;
|
||||
}
|
||||
|
||||
batchUpdateNodeDimensions({ updates });
|
||||
}),
|
||||
[]
|
||||
);
|
||||
return new ResizeObserver((entries) => {
|
||||
const updates = entries.map((entry) => ({
|
||||
id: entry.target.getAttribute('data-id') as string,
|
||||
nodeElement: entry.target as HTMLDivElement,
|
||||
}));
|
||||
|
||||
batchUpdateNodeDimensions({ updates });
|
||||
});
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="react-flow__nodes" style={transformStyle}>
|
||||
|
||||
+1
-1
@@ -227,7 +227,7 @@ export interface WrapNodeProps {
|
||||
snapToGrid?: boolean;
|
||||
snapGrid?: SnapGrid;
|
||||
isDragging?: boolean;
|
||||
resizeObserver: ResizeObserver;
|
||||
resizeObserver: ResizeObserver | null;
|
||||
}
|
||||
|
||||
export type FitViewParams = {
|
||||
|
||||
Reference in New Issue
Block a user