ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
57 lines • 1.95 kB
TypeScript
import * as React from 'react';
import { ReactNode } from 'react';
import { FieldValues, UseFormProps, SubmitHandler } from 'react-hook-form';
import { RaRecord } from '../types';
import { SaveHandler } from '../controller';
import { ValidateForm } from './validation/getSimpleValidationResolver';
/**
* Creates a form element, initialized with the current record, calling the saveContext on submit
*
* Wrapper around react-hook-form's useForm, FormContextProvider, and <form>.
* Also sets up a FormGroupContext, and handles submission validation.
*
* @example
*
* const MyForm = ({ record, defaultValues, validate }) => (
* <Form record={record} defaultValues={defaultValues} validate={validate}>
* <Stack>
* <TextInput source="title" />
* <SaveButton />
* </Stack>
* </Form>
* );
*
* @typedef {Object} Props the props you can use
* @prop {Object} defaultValues
* @prop {Function} validate
* @prop {Function} save
*
* @see useForm
* @see FormGroupContext
*
* @link https://react-hook-form.com/docs/useformcontext
*/
export declare function Form<RecordType = any>(props: FormProps<RecordType>): React.JSX.Element;
export type FormProps<RecordType = any> = FormOwnProps<RecordType> & Omit<UseFormProps, 'onSubmit'> & {
validate?: ValidateForm;
noValidate?: boolean;
WarnWhenUnsavedChangesComponent?: React.ComponentType<{
enable?: boolean;
formRootPathName?: string;
formControl?: any;
}>;
};
export interface FormOwnProps<RecordType = any> {
children: ReactNode;
className?: string;
defaultValues?: any;
formRootPathname?: string;
id?: string;
record?: Partial<RaRecord>;
resource?: string;
onSubmit?: SubmitHandler<FieldValues> | SaveHandler<RecordType>;
warnWhenUnsavedChanges?: boolean;
sanitizeEmptyValues?: boolean;
disableInvalidFormNotification?: boolean;
}
//# sourceMappingURL=Form.d.ts.map