@bedrock-layout/use-resize-observer
Version:
bedrock-layout useResizeObserver
23 lines (22 loc) • 535 B
JavaScript
import { init as n, registerCallback as s } from "@bedrock-layout/register-resize-callback";
import { useStatefulRef as i } from "@bedrock-layout/use-stateful-ref";
import { useRef as m, useLayoutEffect as a, useEffect as u } from "react";
function b(r, f) {
const t = m(r), o = i();
a(() => {
t.current = r;
}), u(() => {
n();
}, []);
const e = o.current ?? f;
return u(() => {
n();
const c = e ? s(e, t) : () => 0;
return () => {
c();
};
}, [e]), o;
}
export {
b as useResizeObserver
};