UNPKG

tdesign-react

Version:
55 lines (51 loc) 2.27 kB
/** * tdesign v1.15.1 * (c) 2025 tdesign * @license MIT */ import { _ as _slicedToArray } from '../../_chunks/dep-48805ab8.js'; import { useState, useMemo, useRef, useEffect } from 'react'; import { get, isUndefined } from 'lodash-es'; import { HOOK_MARK } from './useForm.js'; import noop from '../../_util/noop.js'; import '../../_chunks/dep-026a4c6b.js'; import '../../_chunks/dep-87d110df.js'; import '../../_chunks/dep-46885238.js'; import '../../_chunks/dep-cb0a3966.js'; import '../../_chunks/dep-eca3a3de.js'; import '../../_chunks/dep-b908e1fe.js'; function useWatch(name, form) { var _useState = useState(), _useState2 = _slicedToArray(_useState, 2), value = _useState2[0], setValue = _useState2[1]; var valueStr = useMemo(function () { return JSON.stringify(value); }, [value]); var valueStrRef = useRef(valueStr); 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); 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(allFieldsValue, name); setValue(JSON.stringify(initialValue)); return cancelRegister; }, []); return isUndefined(value) ? value : JSON.parse(value); } export { useWatch as default }; //# sourceMappingURL=useWatch.js.map