tdesign-react
Version:
TDesign Component for React
51 lines (47 loc) • 2.04 kB
JavaScript
/**
* tdesign v1.16.6
* (c) 2026 tdesign
* @license MIT
*/
import { _ as _slicedToArray } from '../../_chunks/dep-dcb6b3df.js';
import { useState, useEffect } from 'react';
import { get, isEqual } from 'lodash-es';
import noop from '../../_util/noop.js';
import { HOOK_MARK } from './useForm.js';
import '../../_chunks/dep-054b5858.js';
import '../../_chunks/dep-3d8e28be.js';
import '../../_chunks/dep-550d14c2.js';
import '../../_chunks/dep-045f6f97.js';
import '../../_chunks/dep-cb51c631.js';
import '../../_chunks/dep-99591f55.js';
import '../../_chunks/dep-8b6f4661.js';
import '../../_chunks/dep-38fb5449.js';
function useWatch(name, form) {
var _useState = useState(),
_useState2 = _slicedToArray(_useState, 2),
value = _useState2[0],
setValue = _useState2[1];
var isValidForm = form && form._init;
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, HOOK_MARK),
_form$getInternalHook2 = _form$getInternalHook.registerWatch,
registerWatch = _form$getInternalHook2 === void 0 ? noop : _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(allFieldsValue2, name);
if (!isEqual(value, newValue)) {
setValue(newValue);
}
});
var allFieldsValue = (_form$getFieldsValue2 = form.getFieldsValue) === null || _form$getFieldsValue2 === void 0 ? void 0 : _form$getFieldsValue2.call(form, true);
var initialValue = get(allFieldsValue, name);
setValue(initialValue);
return cancelRegister;
}, []);
return value;
}
export { useWatch as default };
//# sourceMappingURL=useWatch.js.map