tdesign-react
Version:
TDesign Component for React
35 lines (31 loc) • 1.02 kB
JavaScript
/**
* tdesign v1.11.6
* (c) 2025 tdesign
* @license MIT
*/
import { useLayoutEffect } from 'react';
import { isFunction } from 'lodash-es';
function useResizeObserver(container, callback) {
var containerObserver = null;
var cleanupObserver = function cleanupObserver() {
if (!containerObserver || !container) return;
containerObserver.unobserve(container);
isFunction(containerObserver.disconnect) && containerObserver.disconnect();
containerObserver = null;
};
var addObserver = function addObserver(el) {
containerObserver = new ResizeObserver(callback);
containerObserver.observe(el);
};
useLayoutEffect(function () {
var isSupport = typeof window !== "undefined" && window.ResizeObserver;
if (!isSupport) return;
cleanupObserver();
container && addObserver(container);
return function () {
cleanupObserver();
};
}, [container, containerObserver]);
}
export { useResizeObserver as default };
//# sourceMappingURL=useResizeObserver.js.map