///
import * as PropTypes from 'prop-types';
import * as React from 'react';
export interface FormikValues {
[field: string]: any;
}
export declare type FormikErrors = {
[field in keyof Values]?: any;
};
export declare type FormikTouched = {
[field in keyof Values]?: boolean & FormikTouched;
};
export interface FormikState {
values: Values;
error?: any;
errors: FormikErrors;
touched: FormikTouched;
isSubmitting: boolean;
status?: any;
}
export interface FormikComputedProps {
readonly dirty: boolean;
readonly isValid: boolean;
readonly initialValues: Values;
}
export interface FormikActions {
setStatus(status?: any): void;
setError(e: any): void;
setErrors(errors: FormikErrors): void;
setSubmitting(isSubmitting: boolean): void;
setTouched(touched: FormikTouched): void;
setValues(values: Values): void;
setFieldValue(field: keyof Values, value: any, shouldValidate?: boolean): void;
setFieldValue(field: string, value: any, shouldValidate?: boolean): void;
setFieldError(field: keyof Values, message: string): void;
setFieldError(field: string, message: string): void;
setFieldTouched(field: keyof Values, isTouched?: boolean, shouldValidate?: boolean): void;
setFieldTouched(field: string, isTouched?: boolean, shouldValidate?: boolean): void;
validateForm(values?: any): void;
resetForm(nextValues?: any): void;
submitForm(): void;
setFormikState>(f: (prevState: Readonly>, props: any) => Pick, K>, callback?: () => any): void;
}
export interface FormikActions {
setFieldValue(field: string, value: any): void;
setFieldError(field: string, message: string): void;
setFieldTouched(field: string, isTouched?: boolean): void;
setFormikState>(state: Pick, K>, callback?: () => any): void;
}
export interface FormikHandlers {
handleSubmit: (e: React.FormEvent) => void;
handleChange: (e: React.ChangeEvent) => void;
handleBlur: (e: any) => void;
handleReset: () => void;
}
export interface FormikSharedConfig {
validateOnChange?: boolean;
validateOnBlur?: boolean;
isInitialValid?: boolean | ((props: object) => boolean | undefined);
enableReinitialize?: boolean;
}
export interface FormikConfig extends FormikSharedConfig {
initialValues: Values;
onReset?: (values: Values, formikActions: FormikActions) => void;
onSubmit: (values: Values, formikActions: FormikActions) => void;
component?: React.ComponentType> | React.ReactNode;
render?: ((props: FormikProps) => React.ReactNode);
validationSchema?: any | (() => any);
validate?: ((values: Values) => void | object | Promise>);
children?: ((props: FormikProps) => React.ReactNode) | React.ReactNode;
}
export declare type FormikProps = FormikState & FormikActions & FormikHandlers & FormikComputedProps;
export declare class Formik extends React.Component & ExtraProps, FormikState> {
static defaultProps: {
validateOnChange: boolean;
validateOnBlur: boolean;
isInitialValid: boolean;
enableReinitialize: boolean;
};
static propTypes: {
validateOnChange: PropTypes.Requireable;
validateOnBlur: PropTypes.Requireable;
isInitialValid: PropTypes.Requireable;
initialValues: PropTypes.Requireable;
onReset: PropTypes.Requireable;
onSubmit: PropTypes.Validator;
validationSchema: PropTypes.Requireable;
validate: PropTypes.Requireable;
component: PropTypes.Requireable;
render: PropTypes.Requireable;
children: PropTypes.Requireable;
enableReinitialize: PropTypes.Requireable;
};
static childContextTypes: {
formik: PropTypes.Requireable;
};
initialValues: Values;
getChildContext(): {
formik: {
handleBlur: (e: any) => void;
handleChange: (e: React.ChangeEvent) => void;
handleReset: () => void;
handleSubmit: (e: React.FormEvent) => void;
validateOnChange: (FormikConfig & ExtraProps)["validateOnChange"];
validateOnBlur: (FormikConfig & ExtraProps)["validateOnBlur"];
dirty: boolean;
isValid: boolean;
initialValues: Values;
setStatus(status?: any): void;
setError(e: any): void;
setErrors(errors: FormikErrors): void;
setSubmitting(isSubmitting: boolean): void;
setTouched(touched: FormikTouched): void;
setValues(values: Values): void;
setFieldValue(field: keyof Values, value: any, shouldValidate?: boolean | undefined): void;
setFieldValue(field: string, value: any, shouldValidate?: boolean | undefined): void;
setFieldValue(field: string, value: any): void;
setFieldError(field: keyof Values, message: string): void;
setFieldError(field: string, message: string): void;
setFieldError(field: string, message: string): void;
setFieldTouched(field: keyof Values, isTouched?: boolean | undefined, shouldValidate?: boolean | undefined): void;
setFieldTouched(field: string, isTouched?: boolean | undefined, shouldValidate?: boolean | undefined): void;
setFieldTouched(field: string, isTouched?: boolean | undefined): void;
validateForm(values?: any): void;
resetForm(nextValues?: any): void;
submitForm(): void;
setFormikState(f: (prevState: Readonly>, props: any) => Pick, K>, callback?: (() => any) | undefined): void;
setFormikState(state: Pick, K>, callback?: (() => any) | undefined): void;
values: any;
error?: any;
errors: FormikErrors;
touched: FormikTouched;
isSubmitting: boolean;
status?: any;
};
};
constructor(props: FormikConfig & ExtraProps);
componentWillReceiveProps(nextProps: Readonly & ExtraProps>): void;
componentWillMount(): void;
setErrors: (errors: FormikErrors) => void;
setTouched: (touched: FormikTouched) => void;
setValues: (values: FormikValues) => void;
setStatus: (status?: any) => void;
setError: (error: any) => void;
setSubmitting: (isSubmitting: boolean) => void;
runValidationSchema: (values: FormikValues, onSuccess?: Function | undefined) => void;
runValidations: (values?: FormikValues) => void;
handleChange: (e: React.ChangeEvent) => void;
setFieldValue: (field: string, value: any, shouldValidate?: boolean) => void;
handleSubmit: (e: React.FormEvent) => void;
submitForm: () => void;
executeSubmit: () => void;
handleBlur: (e: any) => void;
setFieldTouched: (field: string, touched?: boolean, shouldValidate?: boolean) => void;
setFieldError: (field: string, message: string) => void;
resetForm: (nextValues?: Values | undefined) => void;
handleReset: () => void;
setFormikState: (s: any, callback?: (() => void) | undefined) => void;
getFormikActions: () => FormikActions;
getFormikComputedProps: () => {
dirty: boolean;
isValid: boolean;
initialValues: Values;
};
getFormikBag: () => {
handleBlur: (e: any) => void;
handleChange: (e: React.ChangeEvent) => void;
handleReset: () => void;
handleSubmit: (e: React.FormEvent) => void;
validateOnChange: (FormikConfig & ExtraProps)["validateOnChange"];
validateOnBlur: (FormikConfig & ExtraProps)["validateOnBlur"];
dirty: boolean;
isValid: boolean;
initialValues: Values;
setStatus(status?: any): void;
setError(e: any): void;
setErrors(errors: FormikErrors): void;
setSubmitting(isSubmitting: boolean): void;
setTouched(touched: FormikTouched): void;
setValues(values: Values): void;
setFieldValue(field: keyof Values, value: any, shouldValidate?: boolean | undefined): void;
setFieldValue(field: string, value: any, shouldValidate?: boolean | undefined): void;
setFieldValue(field: string, value: any): void;
setFieldError(field: keyof Values, message: string): void;
setFieldError(field: string, message: string): void;
setFieldError(field: string, message: string): void;
setFieldTouched(field: keyof Values, isTouched?: boolean | undefined, shouldValidate?: boolean | undefined): void;
setFieldTouched(field: string, isTouched?: boolean | undefined, shouldValidate?: boolean | undefined): void;
setFieldTouched(field: string, isTouched?: boolean | undefined): void;
validateForm(values?: any): void;
resetForm(nextValues?: any): void;
submitForm(): void;
setFormikState(f: (prevState: Readonly>, props: any) => Pick, K>, callback?: (() => any) | undefined): void;
setFormikState(state: Pick, K>, callback?: (() => any) | undefined): void;
values: any;
error?: any;
errors: FormikErrors;
touched: FormikTouched;
isSubmitting: boolean;
status?: any;
};
render(): any;
}
export declare function yupToFormErrors(yupError: any): FormikErrors;
export declare function validateYupSchema(data: T, schema: any, context?: any): Promise;
export * from './Field';
export * from './Form';
export * from './withFormik';
export * from './FieldArray';
export * from './utils';