tdesign-react
Version:
TDesign Component for React
84 lines (80 loc) • 3.67 kB
JavaScript
/**
* tdesign v1.16.6
* (c) 2026 tdesign
* @license MIT
*/
import { _ as _toArray } from '../../_chunks/dep-3bc65c4e.js';
import React, { useEffect } from 'react';
import { isEmpty, get, has, unset } from 'lodash-es';
import { useFormContext, useFormListContext } from '../FormContext.js';
import { TD_DEFAULT_VALUE_MAP } from '../const.js';
import '../../_chunks/dep-054b5858.js';
import '../../_chunks/dep-045f6f97.js';
import '../../_chunks/dep-3d8e28be.js';
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function useFormItemInitialData(name, fullPath, initialData, children) {
var hadReadFloatingFormData = false;
var _useFormContext = useFormContext(),
form = _useFormContext.form,
floatingFormDataRef = _useFormContext.floatingFormDataRef,
formContextInitialData = _useFormContext.initialData;
var _useFormListContext = useFormListContext(),
formListName = _useFormListContext.name,
formListInitialData = _useFormListContext.initialData;
useEffect(function () {
if (hadReadFloatingFormData) {
var nameList = formListName ? [formListName, name].flat() : name;
unset(floatingFormDataRef.current, nameList);
}
}, [hadReadFloatingFormData, floatingFormDataRef, formListName, name]);
var defaultInitialData = getDefaultInitialData(children, initialData);
function getDefaultInitialData(children2, initialData2) {
if (name && floatingFormDataRef !== null && floatingFormDataRef !== void 0 && floatingFormDataRef.current && !isEmpty(floatingFormDataRef.current)) {
var nameList = formListName ? [formListName, name].flat() : name;
var defaultInitialData2 = get(floatingFormDataRef.current, nameList);
if (typeof defaultInitialData2 !== "undefined") {
hadReadFloatingFormData = true;
return defaultInitialData2;
}
}
if (typeof initialData2 !== "undefined") {
return initialData2;
}
if (formListName && Array.isArray(fullPath)) {
var pathPrefix = fullPath.slice(0, -1);
var pathExisted = has(form.store, pathPrefix);
if (pathExisted) {
return get(form.store, fullPath);
}
}
if (Array.isArray(name) && formListInitialData !== null && formListInitialData !== void 0 && formListInitialData.length) {
var _defaultInitialData;
var _name = _toArray(name),
index = _name[0],
relativePath = _arrayLikeToArray(_name).slice(1);
if (formListInitialData[index]) {
_defaultInitialData = get(formListInitialData[index], relativePath);
}
if (typeof _defaultInitialData !== "undefined") return _defaultInitialData;
}
if (name && formContextInitialData) {
var _defaultInitialData2 = get(formContextInitialData, name);
if (typeof _defaultInitialData2 !== "undefined") return _defaultInitialData2;
}
if (typeof children2 !== "function") {
var childList = React.Children.toArray(children2);
var lastChild = childList[childList.length - 1];
if (lastChild && /*#__PURE__*/React.isValidElement(lastChild)) {
var _lastChild$props;
var isMultiple = lastChild === null || lastChild === void 0 || (_lastChild$props = lastChild.props) === null || _lastChild$props === void 0 ? void 0 : _lastChild$props.multiple;
var componentName = lastChild.type.displayName;
return isMultiple ? [] : TD_DEFAULT_VALUE_MAP.get(componentName);
}
}
}
return {
defaultInitialData: defaultInitialData
};
}
export { useFormItemInitialData as default };
//# sourceMappingURL=useFormItemInitialData.js.map