UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

35 lines (34 loc) 1.13 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); Object.defineProperty(exports, 'useResizeObserver', { enumerable: true, get: function () { return useResizeObserver; }, }); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _dom = require('../functions/dom.js'); const useResizeObserver = (onResize) => { let resizeObserver = _react.useRef(void 0); let elementRef = _react.useCallback( (element) => { if (!(0, _dom.getWindow)()?.ResizeObserver) return; resizeObserver.current?.disconnect?.(); if (element) { resizeObserver.current = new ResizeObserver((entries) => { window.requestAnimationFrame(() => { if (!Array.isArray(entries) || !entries.length) return; let [{ contentRect }] = entries; return onResize(contentRect); }); }); resizeObserver.current?.observe?.(element); } }, [onResize], ); return [elementRef, resizeObserver.current]; };