@react-aria/utils
Version:
Spectrum UI components in React
39 lines (34 loc) • 1.26 kB
JavaScript
import {useEffect as $Vsl8o$useEffect} from "react";
function $9daab02d461809db$var$hasResizeObserver() {
return typeof window.ResizeObserver !== 'undefined';
}
function $9daab02d461809db$export$683480f191c0e3ea(options) {
const { ref: ref, box: box, onResize: onResize } = options;
(0, $Vsl8o$useEffect)(()=>{
let element = ref === null || ref === void 0 ? void 0 : ref.current;
if (!element) return;
if (!$9daab02d461809db$var$hasResizeObserver()) {
window.addEventListener('resize', onResize, false);
return ()=>{
window.removeEventListener('resize', onResize, false);
};
} else {
const resizeObserverInstance = new window.ResizeObserver((entries)=>{
if (!entries.length) return;
onResize();
});
resizeObserverInstance.observe(element, {
box: box
});
return ()=>{
if (element) resizeObserverInstance.unobserve(element);
};
}
}, [
onResize,
ref,
box
]);
}
export {$9daab02d461809db$export$683480f191c0e3ea as useResizeObserver};
//# sourceMappingURL=useResizeObserver.module.js.map