@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
25 lines (22 loc) • 699 B
JavaScript
'use client';
import { useCallbackRef, useIsomorphicEffect } from '@mantine/hooks';
function useResizeObserver(element, onResize) {
const handleResize = useCallbackRef(onResize);
useIsomorphicEffect(() => {
let rAF = 0;
if (element) {
const resizeObserver = new ResizeObserver(() => {
cancelAnimationFrame(rAF);
rAF = window.requestAnimationFrame(handleResize);
});
resizeObserver.observe(element);
return () => {
window.cancelAnimationFrame(rAF);
resizeObserver.unobserve(element);
};
}
return void 0;
}, [element, handleResize]);
}
export { useResizeObserver };
//# sourceMappingURL=use-resize-observer.mjs.map