UNPKG

react-use

Version:
34 lines (33 loc) 958 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = require("react"); var resize_observer_polyfill_1 = tslib_1.__importDefault(require("resize-observer-polyfill")); var useMeasure = function () { var _a = react_1.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 = react_1.useState(function () { return new resize_observer_polyfill_1.default(function (entries) { var entry = entries[0]; if (entry) { set(entry.contentRect); } }); })[0]; var ref = react_1.useCallback(function (node) { observer.disconnect(); if (node) { observer.observe(node); } }, [observer]); return [ref, rect]; }; exports.default = useMeasure;