UNPKG

tdesign-react

Version:
84 lines (78 loc) 2.78 kB
/** * tdesign v1.11.6 * (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-4dcb7805.js'); var debounce = require('../_chunks/dep-30d1d019.js'); require('../_chunks/dep-68f8743f.js'); require('../_chunks/dep-a8d0483a.js'); require('../_chunks/dep-6e34d7d7.js'); require('../_chunks/dep-5b35215f.js'); require('../_chunks/dep-d45b3350.js'); require('../_chunks/dep-ec3beb8d.js'); require('../_chunks/dep-b7e21379.js'); require('../_chunks/dep-73937edb.js'); require('../_chunks/dep-8d4e8f1c.js'); require('../_chunks/dep-1d022321.js'); require('../_chunks/dep-ab08e148.js'); require('../_chunks/dep-9df70348.js'); require('../_chunks/dep-af16359b.js'); require('../_chunks/dep-e11afe29.js'); require('../_chunks/dep-346ac5f4.js'); require('../_chunks/dep-3d31346e.js'); require('../_chunks/dep-bf176c49.js'); require('../_chunks/dep-d5a77c7c.js'); require('../_chunks/dep-b7847924.js'); require('../_chunks/dep-0d35f53a.js'); require('../_chunks/dep-d8727aa2.js'); require('../_chunks/dep-440a0ba0.js'); require('../_chunks/dep-a817745a.js'); require('../_chunks/dep-02a1b59c.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 observeRef = React.useRef(null); var optionsRef = React.useRef(); var signalRen = React.useRef(0); var callbackRef = hooks_useLatest["default"](cb); if (!isEqual.isEqual(options, optionsRef.current)) { signalRen.current += 1; } optionsRef.current = options; React.useEffect(function () { if (!targetEl || !(targetEl !== null && targetEl !== void 0 && targetEl.nodeType)) return; try { var _optionsRef$current = optionsRef.current, debounceTime = _optionsRef$current.debounceTime, config = _optionsRef$current.config; var mutationCallback = function mutationCallback() { callbackRef.current.apply(callbackRef, arguments); }; observeRef.current = new MutationObserver(debounceTime > 0 ? debounce.debounce(mutationCallback, debounceTime) : mutationCallback); observeRef.current.observe(targetEl, config); } catch (e) { console.error(e); } return function () { if (observeRef.current) { observeRef.current.disconnect(); observeRef.current = null; } }; }, [targetEl, signalRen.current]); } exports["default"] = useMutationObservable; //# sourceMappingURL=useMutationObserver.js.map