react-use
Version:
Collection of React Hooks
34 lines (33 loc) • 958 B
JavaScript
;
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;