naive-ui
Version:
A Vue 3 Component Library. Fairly Complete, Theme Customizable, Uses TypeScript, Fast
31 lines (30 loc) • 945 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.useOnResize = useOnResize;
const vue_1 = require("vue");
const vueuc_1 = require("vueuc");
function useOnResize(elRef, onResize) {
// it needn't be reactive since it's for internal usage
if (onResize) {
(0, vue_1.onMounted)(() => {
const { value: el } = elRef;
if (el) {
vueuc_1.resizeObserverManager.registerHandler(el, onResize);
}
});
// avoid memory leak
(0, vue_1.watch)(elRef, (_, oldEl) => {
if (oldEl) {
vueuc_1.resizeObserverManager.unregisterHandler(oldEl);
}
}, {
deep: false
});
(0, vue_1.onBeforeUnmount)(() => {
const { value: el } = elRef;
if (el) {
vueuc_1.resizeObserverManager.unregisterHandler(el);
}
});
}
}
;