UNPKG

tdesign-react

Version:
84 lines (78 loc) 2.72 kB
/** * tdesign v1.15.1 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var hooks_useLatest = require('./useLatest.js'); var isEqual = require('../_chunks/dep-eb6d55c1.js'); var debounce = require('../_chunks/dep-a231fdc5.js'); require('../_chunks/dep-31c4bc3d.js'); require('../_chunks/dep-eea2872a.js'); require('../_chunks/dep-25585736.js'); require('../_chunks/dep-667ac7af.js'); require('../_chunks/dep-62e73936.js'); require('../_chunks/dep-64577888.js'); require('../_chunks/dep-71455db7.js'); require('../_chunks/dep-9e5a468d.js'); require('../_chunks/dep-ec8d2dca.js'); require('../_chunks/dep-fc596d16.js'); require('../_chunks/dep-f26edb7b.js'); require('../_chunks/dep-f33c1939.js'); require('../_chunks/dep-21ece627.js'); require('../_chunks/dep-25e4aa84.js'); require('../_chunks/dep-e1fbe1c3.js'); require('../_chunks/dep-014b9b78.js'); require('../_chunks/dep-abdd786a.js'); require('../_chunks/dep-3d4656ee.js'); require('../_chunks/dep-0ffc9d96.js'); require('../_chunks/dep-efe6d243.js'); require('../_chunks/dep-4b18243f.js'); require('../_chunks/dep-bff2c990.js'); require('../_chunks/dep-cf14666e.js'); require('../_chunks/dep-79629634.js'); var DEFAULT_OPTIONS = { debounceTime: 0, config: { attributes: true, childList: true, characterData: true, subtree: true } }; function useMutationObservable(targetEl, cb) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_OPTIONS; var optionsRef = React.useRef(null); var signalRef = React.useRef(0); var callbackRef = hooks_useLatest["default"](cb); if (!isEqual.isEqual(options, optionsRef.current)) { signalRef.current += 1; } optionsRef.current = options; React.useEffect(function () { if (!targetEl || !(targetEl !== null && targetEl !== void 0 && targetEl.nodeType)) return; var observer = null; try { var _optionsRef$current = optionsRef.current, debounceTime = _optionsRef$current.debounceTime, config = _optionsRef$current.config; var mutationCallback = function mutationCallback() { callbackRef.current.apply(callbackRef, arguments); }; observer = new MutationObserver(debounceTime > 0 ? debounce.debounce(mutationCallback, debounceTime) : mutationCallback); observer.observe(targetEl, config); } catch (e) { console.error(e); } return function () { if (observer) { observer.disconnect(); observer = null; } }; }, [targetEl, signalRef.current]); } exports["default"] = useMutationObservable; //# sourceMappingURL=useMutationObserver.js.map