antd-mobile
Version:
<img src="https://gw.alipayobjects.com/mdn/rms_ee68a8/afts/img/A*hjjDS5Yy-ooAAAAAAAAAAAAAARQnAQ" alt="logo" width="100%" />
28 lines (24 loc) • 629 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useResizeEffect = useResizeEffect;
var _ahooks = require("ahooks");
function useResizeEffect(effect, targetRef) {
const fn = (0, _ahooks.useMemoizedFn)(effect);
(0, _ahooks.useIsomorphicLayoutEffect)(() => {
const target = targetRef.current;
if (!target) return;
if (window.ResizeObserver) {
const observer = new ResizeObserver(() => {
fn(target);
});
observer.observe(target);
return () => {
observer.disconnect();
};
} else {
fn(target);
}
}, [targetRef]);
}
;