UNPKG

@figliolia/size-observer

Version:
27 lines (26 loc) 926 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useSizeObserver = void 0; const react_1 = require("react"); const SizeObserver_1 = require("./SizeObserver"); const useSizeObserver = (options) => { const node = (0, react_1.useRef)(null); const stableOptions = (0, react_1.useRef)(options); stableOptions.current = options; const observer = (0, react_1.useRef)(null); if (observer.current) { observer.current.setOptions(stableOptions.current); } (0, react_1.useLayoutEffect)(() => { if (!node.current) { return; } observer.current = new SizeObserver_1.SizeObserver(node.current, stableOptions.current); return () => { var _a; (_a = observer.current) === null || _a === void 0 ? void 0 : _a.destroy(); }; }, []); return node; }; exports.useSizeObserver = useSizeObserver;