tdesign-vue
Version:
37 lines (33 loc) • 982 B
JavaScript
/**
* tdesign v1.12.1
* (c) 2025 tdesign
* @license MIT
*/
import { watch, onBeforeUnmount } from '@vue/composition-api';
function useResizeObserver(container, callback) {
var isSupport = typeof window !== "undefined" && window.ResizeObserver;
if (!isSupport) return;
var containerObserver = null;
var cleanupObserver = function cleanupObserver() {
if (!containerObserver || !container.value) return;
containerObserver.unobserve(container.value);
containerObserver.disconnect();
containerObserver = null;
};
var addObserver = function addObserver(el) {
containerObserver = new ResizeObserver(callback);
containerObserver.observe(el);
};
container && watch(container, function (el) {
cleanupObserver();
el && addObserver(el);
}, {
immediate: true,
flush: "post"
});
onBeforeUnmount(function () {
cleanupObserver();
});
}
export { useResizeObserver as default };
//# sourceMappingURL=useResizeObserver.js.map