@ozen-ui/kit
Version:
React component library
29 lines (28 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useResizeObserver = useResizeObserver;
var tslib_1 = require("tslib");
var react_1 = require("react");
var useCreateResizeObserver_1 = require("../useCreateResizeObserver");
var constants_1 = require("./constants");
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function useResizeObserver(options) {
var ref = (0, react_1.useRef)(null);
var _a = tslib_1.__read((0, react_1.useState)(constants_1.USE_RESIZE_OBSERVER_DEFAULT_STATE), 2), rect = _a[0], setRect = _a[1];
var observer = (0, useCreateResizeObserver_1.useCreateResizeObserver)(function (entries) {
var entry = entries[0];
if (entry && ref.current) {
var newRect = entry.contentRect;
setRect(newRect);
}
});
(0, react_1.useEffect)(function () {
if (ref.current) {
observer === null || observer === void 0 ? void 0 : observer.observe(ref.current, options);
}
return function () {
observer === null || observer === void 0 ? void 0 : observer.disconnect();
};
}, [ref.current]);
return [ref, rect];
}