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, 'useContainerWidth', { enumerable: true, get: function () { return useContainerWidth; }, }); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _useMergedRefs = require('./useMergedRefs.js'); const _useResizeObserver = require('./useResizeObserver.js'); const useContainerWidth = (watchResizes = true) => { let [contentWidth, setContentWidth] = _react.useState(0); let ref = _react.useCallback((element) => { if (!element) return; setContentWidth(element.getBoundingClientRect().width); }, []); let updateWidth = _react.useCallback( ({ width }) => setContentWidth(width), [], ); let [resizeRef, resizeObserver] = (0, _useResizeObserver.useResizeObserver)( updateWidth, ); if (!watchResizes) resizeObserver?.disconnect(); let refs = (0, _useMergedRefs.useMergedRefs)( ref, watchResizes ? resizeRef : void 0, ); return [refs, contentWidth]; };