tdesign-react
Version:
TDesign Component for React
84 lines (78 loc) • 2.78 kB
JavaScript
/**
* tdesign v1.11.6
* (c) 2025 tdesign
* @license MIT
*/
;
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