UNPKG

@lesnoypudge/utils-react

Version:

lesnoypudge's utils-react

23 lines (22 loc) 776 B
import { useFunction } from "../useFunction/useFunction.js"; import { SharedMutationObserver } from "@lesnoypudge/utils-web"; import { useLayoutEffect } from "react"; import { useMemoDeep } from "../useMemoDeep/useMemoDeep.js"; const observer = new SharedMutationObserver(); const useMutationObserver = (elementRef, callback, options) => { const _callback = useFunction(callback); const _options = useMemoDeep(options); useLayoutEffect(() => { return elementRef.effect((node) => { if (!node) return; observer.observe(node, _callback, _options); return () => { observer.unobserve(node, _callback); }; }); }, [_callback, _options, elementRef]); }; export { useMutationObserver }; //# sourceMappingURL=useMutationObserver.js.map