UNPKG

react-use

Version:
31 lines (30 loc) 777 B
import { useCallback, useState } from 'react'; import ResizeObserver from 'resize-observer-polyfill'; var useMeasure = function () { var _a = useState({ x: 0, y: 0, width: 0, height: 0, top: 0, left: 0, bottom: 0, right: 0, }), rect = _a[0], set = _a[1]; var observer = useState(function () { return new ResizeObserver(function (entries) { var entry = entries[0]; if (entry) { set(entry.contentRect); } }); })[0]; var ref = useCallback(function (node) { observer.disconnect(); if (node) { observer.observe(node); } }, [observer]); return [ref, rect]; }; export default useMeasure;