linkmore-design
Version:
π πlmη»δ»ΆεΊγπ
49 lines (43 loc) β’ 1.64 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import { FormProvider as RcFormProvider } from 'rc-field-form';
import omit from 'rc-util/lib/omit';
import * as React from 'react';
import { useContext, useMemo } from 'react';
export var FormContext = /*#__PURE__*/React.createContext({
labelAlign: 'right',
vertical: false,
itemRef: function () {}
});
/** `noStyle` Form Item Context. Used for error collection */
export var NoStyleItemContext = /*#__PURE__*/React.createContext(null);
/** Form Provider */
export var FormProvider = function FormProvider(props) {
var providerProps = omit(props, ['prefixCls']);
return /*#__PURE__*/React.createElement(RcFormProvider, providerProps);
};
/** Used for ErrorList only */
export var FormItemPrefixContext = /*#__PURE__*/React.createContext({
prefixCls: ''
});
export var FormItemInputContext = /*#__PURE__*/React.createContext({});
export var NoFormStyle = function NoFormStyle(_ref) {
var children = _ref.children,
status = _ref.status,
override = _ref.override;
var formItemInputContext = useContext(FormItemInputContext);
var newFormItemInputContext = useMemo(function () {
var newContext = _objectSpread({}, formItemInputContext);
if (override) {
delete newContext.isFormItemInput;
}
if (status) {
delete newContext.status;
delete newContext.hasFeedback;
delete newContext.feedbackIcon;
}
return newContext;
}, [status, override, formItemInputContext]);
return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {
value: newFormItemInputContext
}, children);
};