devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
39 lines (36 loc) • 1.28 kB
JavaScript
/**
* DevExtreme (renovation/ui/scroll_view/utils/subscribe_to_resize.js)
* Version: 23.2.6
* Build date: Wed May 01 2024
*
* Copyright (c) 2012 - 2024 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
exports.subscribeToResize = subscribeToResize;
var _resize_observer = _interopRequireDefault(require("../../../../core/resize_observer"));
var _window = require("../../../../core/utils/window");
var _frame = require("../../../../animation/frame");
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
}
}
function subscribeToResize(element, handler) {
if ((0, _window.hasWindow)() && element) {
let resizeAnimationFrameID = -1;
_resize_observer.default.observe(element, _ref => {
let {
target: target
} = _ref;
resizeAnimationFrameID = (0, _frame.requestAnimationFrame)(() => {
handler(target)
})
});
return () => {
(0, _frame.cancelAnimationFrame)(resizeAnimationFrameID);
_resize_observer.default.unobserve(element)
}
}
return
}