"use strict";
Object.defineProperty(exports, "__esModule", {
    value: true
});
Object.defineProperty(exports, "useResizeObserver", {
    enumerable: true,
    get: function() {
        return useResizeObserver;
    }
});
const _react = require("react");
const useResizeObserver = (ref, callback)=>{
    (0, _react.useEffect)(()=>{
        /* istanbul ignore if: убираем проверку на рефы из покрытия */ if (!ref?.current) {
            return;
        }
        const { current } = ref;
        const resizeObserver = new window.ResizeObserver(()=>{
            window.requestAnimationFrame(()=>{
                callback(current);
            });
        });
        resizeObserver.observe(ref.current);
        return ()=>{
            /* istanbul ignore if: убираем проверку на рефы из покрытия */ if (!ref?.current) {
                return;
            }
            resizeObserver.unobserve(ref.current);
        };
    }, [
        ref
    ]);
};
