UNPKG

@arco-design/web-vue

Version:

Arco Design Vue 2.0: A Vue.js 3 UI Library

29 lines (28 loc) 700 B
import ResizeObserver from "resize-observer-polyfill"; import { isFunction } from "../_utils/is.js"; const useResizeObserver = ({ elementRef, onResize }) => { let resizeObserver; const createResizeObserver = () => { if (!elementRef.value) return; resizeObserver = new ResizeObserver((entries) => { const entry = entries[0]; isFunction(onResize) && onResize(entry); }); resizeObserver.observe(elementRef.value); }; const destroyResizeObserver = () => { if (resizeObserver) { resizeObserver.disconnect(); resizeObserver = null; } }; return { createResizeObserver, destroyResizeObserver }; }; export { useResizeObserver };