tdesign-react
Version:
TDesign Component for React
71 lines (65 loc) • 2.96 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var slicedToArray = require('../../_chunks/dep-8e4d656d.js');
var React = require('react');
var form_hooks_useForm = require('./useForm.js');
var _util_noop = require('../../_util/noop.js');
var get = require('../../_chunks/dep-0c8c9057.js');
var isUndefined = require('../../_chunks/dep-221787fe.js');
require('../../_chunks/dep-00b49251.js');
require('../../_chunks/dep-e4e1901e.js');
require('../../_chunks/dep-69792df2.js');
require('../../_chunks/dep-0006fcfa.js');
require('../../_chunks/dep-667ac7af.js');
require('../../_chunks/dep-59671c87.js');
require('../../_chunks/dep-3398c1f2.js');
require('../../_chunks/dep-64577888.js');
require('../../_chunks/dep-79629634.js');
require('../../_chunks/dep-25585736.js');
require('../../_chunks/dep-62e73936.js');
require('../../_chunks/dep-21ece627.js');
require('../../_chunks/dep-25e4aa84.js');
require('../../_chunks/dep-ec8d2dca.js');
require('../../_chunks/dep-fc596d16.js');
require('../../_chunks/dep-e1fbe1c3.js');
require('../../_chunks/dep-255ceed8.js');
function useWatch(name, form) {
var _useState = React.useState(),
_useState2 = slicedToArray._slicedToArray(_useState, 2),
value = _useState2[0],
setValue = _useState2[1];
var valueStr = React.useMemo(function () {
return JSON.stringify(value);
}, [value]);
var valueStrRef = React.useRef(valueStr);
var isValidForm = form && form._init;
React.useEffect(function () {
var _form$getInternalHook3, _form$getFieldsValue2;
if (!isValidForm) return;
var _form$getInternalHook = (_form$getInternalHook3 = form.getInternalHooks) === null || _form$getInternalHook3 === void 0 ? void 0 : _form$getInternalHook3.call(form, form_hooks_useForm.HOOK_MARK),
_form$getInternalHook2 = _form$getInternalHook.registerWatch,
registerWatch = _form$getInternalHook2 === void 0 ? _util_noop["default"] : _form$getInternalHook2;
var cancelRegister = registerWatch(function () {
var _form$getFieldsValue;
var allFieldsValue2 = (_form$getFieldsValue = form.getFieldsValue) === null || _form$getFieldsValue === void 0 ? void 0 : _form$getFieldsValue.call(form, true);
var newValue = get.get(allFieldsValue2, name);
var nextValueStr = JSON.stringify(newValue);
if (valueStrRef.current !== nextValueStr) {
valueStrRef.current = nextValueStr;
setValue(nextValueStr);
}
});
var allFieldsValue = (_form$getFieldsValue2 = form.getFieldsValue) === null || _form$getFieldsValue2 === void 0 ? void 0 : _form$getFieldsValue2.call(form, true);
var initialValue = get.get(allFieldsValue, name);
setValue(JSON.stringify(initialValue));
return cancelRegister;
}, []);
return isUndefined.isUndefined(value) ? value : JSON.parse(value);
}
exports["default"] = useWatch;
//# sourceMappingURL=useWatch.js.map