|
1 | | -import { ComponentType, FunctionComponent, ReactNode } from 'react'; |
| 1 | +import { ComponentType, ReactElement, FunctionComponent, ReactNode } from 'react'; |
2 | 2 | import { FormProps } from 'react-final-form'; |
3 | 3 | import Schema from '../common-types/schema'; |
4 | 4 | import ComponentMapper from '../common-types/component-mapper'; |
5 | | -import { ValidatorMapper} from '../validator-mapper'; |
| 5 | +import { ValidatorMapper } from '../validator-mapper'; |
6 | 6 | import { ActionMapper } from './action-mapper'; |
7 | 7 | import SchemaValidatorMapper from '../common-types/schema-validator-mapper'; |
8 | 8 | import { FormTemplateRenderProps } from '../common-types/form-template-render-props'; |
9 | 9 | import { AnyObject } from '../common-types/any-object'; |
10 | 10 |
|
11 | | -export interface FormRendererProps extends Omit<FormProps, 'onSubmit'> { |
12 | | - initialValues?: object; |
13 | | - onCancel?: (values: AnyObject, ...args: any[]) => void; |
| 11 | +export interface FormRendererProps< |
| 12 | + FormValues = Record<string, any>, |
| 13 | + InitialFormValues = Partial<FormValues>, |
| 14 | + FormTemplateProps extends FormTemplateRenderProps = FormTemplateRenderProps |
| 15 | +> extends Omit<FormProps<FormValues, InitialFormValues>, 'onSubmit'> { |
| 16 | + initialValues?: InitialFormValues; |
| 17 | + onCancel?: (values: FormValues, ...args: any[]) => void; |
14 | 18 | onReset?: () => void; |
15 | 19 | onError?: (...args: any[]) => void; |
16 | | - onSubmit?: FormProps['onSubmit'] |
| 20 | + onSubmit?: FormProps<FormValues, InitialFormValues>['onSubmit']; |
17 | 21 | schema: Schema; |
18 | 22 | clearOnUnmount?: boolean; |
19 | 23 | clearedValue?: any; |
20 | 24 | componentMapper: ComponentMapper; |
21 | | - FormTemplate?: ComponentType<FormTemplateRenderProps> | FunctionComponent<FormTemplateRenderProps>; |
| 25 | + FormTemplate?: ComponentType<FormTemplateProps> | FunctionComponent<FormTemplateProps>; |
22 | 26 | validatorMapper?: ValidatorMapper; |
23 | 27 | actionMapper?: ActionMapper; |
24 | 28 | schemaValidatorMapper?: SchemaValidatorMapper; |
25 | | - FormTemplateProps?: AnyObject; |
26 | | - children?: ReactNode | ((props: FormTemplateRenderProps) => ReactNode) |
| 29 | + FormTemplateProps?: Partial<FormTemplateProps>; |
| 30 | + children?: ReactNode | ((props: FormTemplateRenderProps) => ReactNode); |
27 | 31 | } |
28 | 32 |
|
29 | | -declare const FormRenderer: React.ComponentType<FormRendererProps>; |
| 33 | +declare function FormRenderer< |
| 34 | + FormValues = Record<string, any>, |
| 35 | + InitialFormValues = Partial<FormValues>, |
| 36 | + FormTemplateProps extends FormTemplateRenderProps = FormTemplateRenderProps |
| 37 | +>(props: FormRendererProps<FormValues, InitialFormValues, FormTemplateProps>): ReactElement<any, any>; |
30 | 38 |
|
31 | 39 | export default FormRenderer; |
0 commit comments