UNPKG

@ozen-ui/kit

Version:

React component library

29 lines (28 loc) 1.19 kB
"use strict"; 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]; }