fix(nodewrap): unobserve resize event

This commit is contained in:
moklick
2019-09-13 18:00:12 +02:00
parent a992f6e4ff
commit dbf617a9b5
2 changed files with 18 additions and 8 deletions
+9 -5
View File
@@ -34185,6 +34185,8 @@
return e.target.className && e.target.className.includes && (e.target.className.includes('source') || e.target.className.includes('target')); return e.target.className && e.target.className.includes && (e.target.className.includes('source') || e.target.className.includes('target'));
}; };
var hasResizeObserver = !!window.ResizeObserver;
var getHandleBounds = function getHandleBounds(sel, nodeElement, parentBounds, k) { var getHandleBounds = function getHandleBounds(sel, nodeElement, parentBounds, k) {
var handles = nodeElement.querySelectorAll(sel); var handles = nodeElement.querySelectorAll(sel);
@@ -34346,9 +34348,10 @@
React.useEffect(function () { React.useEffect(function () {
updateNode(); updateNode();
var resizeObserver = null;
if (ResizeObserver) { if (hasResizeObserver) {
var _resizeObserver = new ResizeObserver(function (entries) { resizeObserver = new ResizeObserver(function (entries) {
var _iteratorNormalCompletion = true; var _iteratorNormalCompletion = true;
var _didIteratorError = false; var _didIteratorError = false;
var _iteratorError = undefined; var _iteratorError = undefined;
@@ -34373,12 +34376,13 @@
} }
} }
}); });
resizeObserver.observe(nodeElement.current);
_resizeObserver.observe(nodeElement.current);
} }
return function () { return function () {
resizeObserver.unobserve(nodeElement.current); if (hasResizeObserver && resizeObserver) {
resizeObserver.unobserve(nodeElement.current);
}
}; };
}, []); }, []);
return React__default.createElement(reactDraggable.DraggableCore, { return React__default.createElement(reactDraggable.DraggableCore, {
+9 -3
View File
@@ -12,6 +12,8 @@ const isHandle = e => (
(e.target.className.includes('source') || e.target.className.includes('target')) (e.target.className.includes('source') || e.target.className.includes('target'))
); );
const hasResizeObserver = !!window.ResizeObserver;
const getHandleBounds = (sel, nodeElement, parentBounds, k) => { const getHandleBounds = (sel, nodeElement, parentBounds, k) => {
const handles = nodeElement.querySelectorAll(sel); const handles = nodeElement.querySelectorAll(sel);
@@ -112,8 +114,10 @@ export default NodeComponent => {
useEffect(() => { useEffect(() => {
updateNode(); updateNode();
if (ResizeObserver) { let resizeObserver = null;
const resizeObserver = new ResizeObserver(entries => {
if (hasResizeObserver) {
resizeObserver = new ResizeObserver(entries => {
for (let entry of entries) { for (let entry of entries) {
updateNode(); updateNode();
} }
@@ -123,7 +127,9 @@ export default NodeComponent => {
} }
return () => { return () => {
resizeObserver.unobserve(nodeElement.current); if (hasResizeObserver && resizeObserver) {
resizeObserver.unobserve(nodeElement.current);
}
} }
}, []); }, []);