UNPKG

ivt

Version:

Ivt Components Library

52 lines (49 loc) 1.66 kB
import * as React from 'react'; import { u as useLayoutEffect2 } from './index-DKOlG3mh.mjs'; // packages/react/use-size/src/use-size.tsx function useSize(element) { const [size, setSize] = React.useState(void 0); useLayoutEffect2(()=>{ if (element) { setSize({ width: element.offsetWidth, height: element.offsetHeight }); const resizeObserver = new ResizeObserver((entries)=>{ if (!Array.isArray(entries)) { return; } if (!entries.length) { return; } const entry = entries[0]; let width; let height; if ("borderBoxSize" in entry) { const borderSizeEntry = entry["borderBoxSize"]; const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry; width = borderSize["inlineSize"]; height = borderSize["blockSize"]; } else { width = element.offsetWidth; height = element.offsetHeight; } setSize({ width, height }); }); resizeObserver.observe(element, { box: "border-box" }); return ()=>resizeObserver.unobserve(element); } else { setSize(void 0); } }, [ element ]); return size; } export { useSize as u }; //# sourceMappingURL=index-DmY774z-.mjs.map