UNPKG

@agentlab/rjsf-antd

Version:

Ant Design theme, fields and widgets for react-jsonschema-form

45 lines 1.98 kB
import React from 'react'; import FormContext from 'antd/es/form/context'; import { ConfigConsumer } from 'antd/es/config-provider'; import omit from 'omit.js'; import Theme from '../Theme'; import classNames from 'classnames'; import ObjectFieldTemplateContext from '../ObjectFieldTemplate/ObjectFieldTemplateContext'; import withTheme from '../Theme/withTheme'; const FormWithTheme = withTheme(Theme); const RjsfForm = React.forwardRef((props, ref) => { const { wrapperCol, labelAlign, labelCol, layout, colon, objectFieldTemplates = {} } = props; const renderForm = ({ getPrefixCls }) => { const { prefixCls: customizePrefixCls, hideRequiredMark, className = '', layout } = props; const prefixCls = getPrefixCls('form', customizePrefixCls); const formClassName = classNames(prefixCls, { [`${prefixCls}-horizontal`]: layout === 'horizontal', [`${prefixCls}-vertical`]: layout === 'vertical', [`${prefixCls}-inline`]: layout === 'inline', [`${prefixCls}-hide-required-mark`]: hideRequiredMark, }, className); const formProps = omit(props, [ 'prefixCls', 'className', //'layout', 'hideRequiredMark', 'wrapperCol', 'labelAlign', 'labelCol', 'colon', ]); return React.createElement(FormWithTheme, Object.assign({}, formProps, { className: formClassName, ref: ref })); }; return (React.createElement(ObjectFieldTemplateContext.Provider, { value: objectFieldTemplates }, React.createElement(FormContext.Provider, { value: { wrapperCol, labelAlign, labelCol, vertical: layout === 'vertical', colon, } }, React.createElement(ConfigConsumer, null, renderForm)))); }); RjsfForm.displayName = 'RjsfForm'; export default RjsfForm; //# sourceMappingURL=Form.js.map