UNPKG

@data-driven-forms/react-form-renderer

Version:

React Form Renderer. Data Driven Forms converts JSON form definitions into fully functional React forms.

33 lines (32 loc) 2.25 kB
import { ReactNode, ComponentType, FunctionComponent, ReactElement } from 'react'; import { FormProps } from 'react-final-form'; import Schema from '../common-types/schema'; import ComponentMapper from '../common-types/component-mapper'; import { ValidatorMapper } from '../validator-mapper'; import { ActionMapper } from './action-mapper'; import SchemaValidatorMapper from '../common-types/schema-validator-mapper'; import { FormTemplateRenderProps } from '../common-types/form-template-render-props'; import { NoIndex } from '../common-types/no-index'; import { ConditionMapper } from './condition-mapper'; export interface FormRendererProps<FormValues = Record<string, any>, InitialFormValues = Partial<FormValues>, FormTemplateProps extends FormTemplateRenderProps = FormTemplateRenderProps> extends Omit<NoIndex<FormProps<FormValues, InitialFormValues>>, 'onSubmit' | 'children'> { initialValues?: InitialFormValues; onCancel?: (values: FormValues, ...args: any[]) => void; onReset?: () => void; onError?: (...args: any[]) => void; onSubmit?: FormProps<FormValues, InitialFormValues>['onSubmit']; schema: Schema | (Record<string, any> & { fields: Array<Record<string, any>>; }); clearOnUnmount?: boolean; clearedValue?: any; componentMapper: ComponentMapper; FormTemplate?: ComponentType<FormTemplateProps> | FunctionComponent<FormTemplateProps>; validatorMapper?: ValidatorMapper; actionMapper?: ActionMapper; conditionMapper?: ConditionMapper; schemaValidatorMapper?: SchemaValidatorMapper; FormTemplateProps?: Partial<FormTemplateProps>; children?: ReactNode | ((props: FormTemplateRenderProps) => ReactNode); } declare function FormRenderer<FormValues = Record<string, any>, InitialFormValues = Partial<FormValues>, FTP extends FormTemplateRenderProps = FormTemplateRenderProps>({ actionMapper, children, clearedValue, clearOnUnmount, componentMapper, conditionMapper, decorators, FormTemplate, FormTemplateProps, mutators, onCancel, onError, onReset, onSubmit, schema, schemaValidatorMapper, subscription, validatorMapper, initialValues, ...props }: FormRendererProps<FormValues, InitialFormValues, FTP>): ReactElement<any, any>; export default FormRenderer;