tdesign-react
Version:
TDesign Component for React
74 lines (70 loc) • 3.01 kB
JavaScript
/**
* tdesign v1.16.2
* (c) 2025 tdesign
* @license MIT
*/
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';
function useFormItemInitialData(name, fullPath) {
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]);
function getDefaultInitialData(_ref) {
var children = _ref.children,
initialData = _ref.initialData;
if (name && floatingFormDataRef !== null && floatingFormDataRef !== void 0 && floatingFormDataRef.current && !isEmpty(floatingFormDataRef.current)) {
var nameList = formListName ? [formListName, name].flat() : name;
var defaultInitialData = get(floatingFormDataRef.current, nameList);
if (typeof defaultInitialData !== "undefined") {
hadReadFloatingFormData = true;
return defaultInitialData;
}
}
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 (typeof initialData !== "undefined") {
return initialData;
}
if (name && formListInitialData.length) {
var _defaultInitialData = get(formListInitialData, name);
if (typeof _defaultInitialData !== "undefined") return _defaultInitialData;
}
if (name && formContextInitialData) {
var _defaultInitialData2 = get(formContextInitialData, name);
if (typeof _defaultInitialData2 !== "undefined") return _defaultInitialData2;
}
if (typeof children !== "function") {
var childList = React.Children.toArray(children);
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 {
getDefaultInitialData: getDefaultInitialData
};
}
export { useFormItemInitialData as default };
//# sourceMappingURL=useFormItemInitialData.js.map