refactor(resizeObserver): check if available

This commit is contained in:
moklick
2020-12-01 12:04:13 +01:00
parent 017d8222d9
commit 887ffbd0c4
3 changed files with 16 additions and 14 deletions
+2 -2
View File
@@ -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;
+13 -11
View File
@@ -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
View File
@@ -227,7 +227,7 @@ export interface WrapNodeProps {
snapToGrid?: boolean;
snapGrid?: SnapGrid;
isDragging?: boolean;
resizeObserver: ResizeObserver;
resizeObserver: ResizeObserver | null;
}
export type FitViewParams = {