UNPKG

infinity-forge

Version:
99 lines (98 loc) 3.37 kB
import { FormikErrors } from 'formik'; import { ButtonProps, MessageProviderProps } from '../../../../ui/index.js'; import { ICustomSubmitProps } from './custom-submit/index.js'; import { IDefaultSchemas } from './form-handler/generate-schemas.js'; export type StateFormFormHandler = { state: 'loading' | 'default' | 'error' | 'send' | ''; message: string; }; export type OnSubmitConfiguration = { schema?: { verifyOnly?: string[]; }; extraData?: { [key in string]: any; }; }; export interface IFormHandler { registryName?: string; errorForm?: { mode?: "modal"; }; ref?: any; inputs?: { readOnly?: boolean; }; i18n?: { active?: boolean; }; errorMessage?: string; languageSelected?: string; updateOnInitialDataChange?: boolean; keepErrorsOnChange?: boolean; schema?: Record<string, any>; onSubmitConfiguration?: OnSubmitConfiguration; modifySchema?: ({ schema, data, }: { schema: IFormHandler['schema']; data?: Record<string, any>; }) => IFormHandler['schema']; onValidateSchema?: (erors: any) => void; recaptcha?: boolean | string; cloudFlare?: { secret: string; }; decimalFields?: string[]; formHandlerContextProps?: any; messageProvider?: MessageProviderProps; modifyInitialData?: (initialData: IFormHandler['initialData']) => any; onFinish?: (data: any, initialValues: any) => void; fileFields?: { ref: string; unique?: boolean; keyRef?: string; uniqueFields?: string[]; fields: string[]; onUpload?: (values: any, response: any, handlers?: { setFieldError: (field: string, message: string) => void; setFieldValue: (field: string, value: any, shouldValidate?: boolean) => Promise<void | FormikErrors<unknown>>; }, filesUplodaded?: any[]) => Promise<void>; }; defaultSchemas?: IDefaultSchemas; isStickyButtons?: boolean; autoComplete?: 'on' | 'off'; onSucess?: (data: any, handlers?: { setFieldError: (field: string, message: string) => void; setFieldValue: (field: string, value: any, shouldValidate?: boolean) => Promise<void | FormikErrors<unknown>>; }, initialValues?: any) => Promise<unknown>; button?: ButtonProps; children?: React.ReactNode; onChangeForm?: { callbackResult: (dataForm: any) => void; additionalDependencies?: any[]; }; customAction?: { props?: { [key: string]: any; }; Component: (props: { values?: any; stateForm: StateFormFormHandler; handleSubmit?(action?: any): Promise<void>; setFieldValue: (field: string, value: any, shouldValidate?: boolean) => Promise<void | FormikErrors<unknown>>; clear: () => void; }) => React.ReactNode; }; initialData?: { [key: string]: any; }; customSubmit?: ICustomSubmitProps[]; cleanFieldsOnSubmit?: boolean; debugMode?: boolean; disableEnterKeySubmitForm?: boolean; trackingEvent?: { /** Nome do evento disparado no window após envio bem-sucedido. Padrão: "infinity:form:submit" */ name?: string; /** Desabilita o disparo do evento de rastreamento */ disabled?: boolean; }; }