UNPKG

@mantine/hooks

Version:

A collection of 50+ hooks for state and UI management

51 lines (50 loc) 1.4 kB
"use client"; let react = require("react"); //#region packages/@mantine/hooks/src/use-mutation-observer/use-mutation-observer.ts function useMutationObserver(callback, options) { const observer = (0, react.useRef)(null); return (0, react.useCallback)((node) => { if (observer.current) { observer.current.disconnect(); observer.current = null; } if (node) { observer.current = new MutationObserver(callback); observer.current.observe(node, options); } return () => { if (observer.current) { observer.current.disconnect(); observer.current = null; } }; }, [callback, options]); } function useMutationObserverTarget(callback, options, target) { const observer = (0, react.useRef)(null); (0, react.useEffect)(() => { if (observer.current) { observer.current.disconnect(); observer.current = null; } const targetElement = typeof target === "function" ? target() : target; if (targetElement) { observer.current = new MutationObserver(callback); observer.current.observe(targetElement, options); } return () => { if (observer.current) { observer.current.disconnect(); observer.current = null; } }; }, [ callback, options, target ]); } //#endregion exports.useMutationObserver = useMutationObserver; exports.useMutationObserverTarget = useMutationObserverTarget; //# sourceMappingURL=use-mutation-observer.cjs.map