linkmore-design
Version:
π πlmη»δ»ΆεΊγπ
36 lines (35 loc) β’ 772 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useResizeObserver;
var _react = require("react");
function useResizeObserver() {
const ref = (0, _react.useRef)();
const [rect, setRect] = (0, _react.useState)({
x: 0,
y: 0,
width: 0,
height: 0,
left: 0,
right: 0,
bottom: 0,
top: 0
});
console.log('useResizeObserver');
(0, _react.useEffect)(() => {
const ro = new ResizeObserver(entries => {
// ιεζΉεηε
η΄ ε±ζ§
for (let entry of entries) {
setRect(entry.target.getBoundingClientRect());
}
});
if (ref.current) {
ro.observe(ref.current);
}
return () => {
ro.disconnect();
};
}, []);
return [ref, rect];
}