@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
25 lines (24 loc) • 743 B
JavaScript
"use client";
import { useEffectEvent } from "react";
import { useIsomorphicEffect } from "@mantine/hooks";
//#region packages/@mantine/core/src/components/ScrollArea/use-resize-observer.ts
function useResizeObserver(element, onResize) {
const handleResize = useEffectEvent(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);
};
}
}, [element]);
}
//#endregion
export { useResizeObserver };
//# sourceMappingURL=use-resize-observer.mjs.map