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(() => { useEffect(() => {
if (nodeElement.current) { if (nodeElement.current) {
const currNode = nodeElement.current; const currNode = nodeElement.current;
resizeObserver.observe(currNode); resizeObserver?.observe(currNode);
return () => resizeObserver.unobserve(currNode); return () => resizeObserver?.unobserve(currNode);
} }
return; return;
+13 -11
View File
@@ -38,18 +38,20 @@ const NodeRenderer = (props: NodeRendererProps) => {
[transform[0], transform[1], transform[2]] [transform[0], transform[1], transform[2]]
); );
const resizeObserver = useMemo( const resizeObserver = useMemo(() => {
() => if (typeof ResizeObserver === 'undefined') {
new ResizeObserver((entries) => { return null;
const updates = entries.map((entry) => ({ }
id: entry.target.getAttribute('data-id') as string,
nodeElement: entry.target as HTMLDivElement,
}));
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 ( return (
<div className="react-flow__nodes" style={transformStyle}> <div className="react-flow__nodes" style={transformStyle}>
+1 -1
View File
@@ -227,7 +227,7 @@ export interface WrapNodeProps {
snapToGrid?: boolean; snapToGrid?: boolean;
snapGrid?: SnapGrid; snapGrid?: SnapGrid;
isDragging?: boolean; isDragging?: boolean;
resizeObserver: ResizeObserver; resizeObserver: ResizeObserver | null;
} }
export type FitViewParams = { export type FitViewParams = {