FormContext.d.ts 1.0 KB

123456789101112131415161718192021222324252627
  1. import * as React from 'react';
  2. import type { ValidateMessages, FormInstance, FieldData, Store } from './interface';
  3. export type Forms = Record<string, FormInstance>;
  4. export interface FormChangeInfo {
  5. changedFields: FieldData[];
  6. forms: Forms;
  7. }
  8. export interface FormFinishInfo {
  9. values: Store;
  10. forms: Forms;
  11. }
  12. export interface FormProviderProps {
  13. validateMessages?: ValidateMessages;
  14. onFormChange?: (name: string, info: FormChangeInfo) => void;
  15. onFormFinish?: (name: string, info: FormFinishInfo) => void;
  16. children?: React.ReactNode;
  17. }
  18. export interface FormContextProps extends FormProviderProps {
  19. triggerFormChange: (name: string, changedFields: FieldData[]) => void;
  20. triggerFormFinish: (name: string, values: Store) => void;
  21. registerForm: (name: string, form: FormInstance) => void;
  22. unregisterForm: (name: string) => void;
  23. }
  24. declare const FormContext: React.Context<FormContextProps>;
  25. declare const FormProvider: React.FunctionComponent<FormProviderProps>;
  26. export { FormProvider };
  27. export default FormContext;