import React from 'react' import { ISchemaFormProps } from '../types' import { Form } from '@formily/react' import { SchemaField } from './SchemaField' import { useSchemaForm } from '../hooks/useSchemaForm' import { FormSchemaContext, FormComponentsContext, FormExpressionScopeContext } from '../shared/context' import { log } from '@formily/shared' export const SchemaForm: React.FC = props => { const { fields, virtualFields, formComponent, componentPropsInterceptor, formItemComponent, formComponentProps, schema, form, children } = useSchemaForm(props) return (
{React.createElement( formComponent, { ...formComponentProps, onSubmit: (e: any) => { if (e && e.preventDefault) e.preventDefault() if (e && e.stopPropagation) e.stopPropagation() form.submit().catch(e => log.warn(e)) }, onReset: () => { form.reset({ validate: false, forceClear: false }) } }, , children )}
) } SchemaForm.defaultProps = { schema: {} } export default SchemaForm