xdesign-vue-next
Version:
XDesign Component for vue-next
44 lines (38 loc) • 1.06 kB
JavaScript
/**
* xdesign v1.0.6
* (c) 2023 xdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
function useResizeObserver(container, callback) {
if (typeof window === "undefined") return;
var isSupport = window && window.ResizeObserver;
if (!isSupport) return;
var containerObserver = null;
var cleanupObserver = function cleanupObserver() {
if (!containerObserver) return;
containerObserver.unobserve(container.value);
containerObserver.disconnect();
containerObserver = null;
};
var addObserver = function addObserver(el) {
containerObserver = new ResizeObserver(callback);
containerObserver.observe(el);
};
if (container) {
vue.watch(container, function (el) {
cleanupObserver();
el && addObserver(el);
}, {
immediate: true,
flush: "post"
});
}
vue.onBeforeUnmount(function () {
cleanupObserver();
});
}
exports["default"] = useResizeObserver;
//# sourceMappingURL=useResizeObserver.js.map