UNPKG

preact-arco-design

Version:

Arco Design React UI Library.

29 lines (25 loc) 728 B
import { useRef } from "preact/compat"; import ResizeObserver from 'resize-observer-polyfill'; export default function useResizeObserver(onResize) { var resizeObserver = useRef(); var destroyObserver = function destroyObserver() { if (resizeObserver.current) { resizeObserver.current.disconnect(); resizeObserver.current = null; } }; var createObserver = function createObserver(elem) { if (elem) { if (resizeObserver.current) { destroyObserver(); } resizeObserver.current = new ResizeObserver(onResize); resizeObserver.current.observe(elem); } }; return { currentOr: resizeObserver.current, cor: createObserver, dor: destroyObserver }; }