UNPKG

ra-core

Version:

Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React

40 lines (38 loc) 1.3 kB
import { FieldValues, UseFormSetError } from 'react-hook-form'; /** * This internal function is used to convert an object matching the form shape with errors to a * format compatible with react-hook-form. It's used to handle submission errors. Only useful when * you are implementing a custom form without leveraging our Form component. * * @example * const MyForm = () => { * const { register, handleSubmit, setError } = useForm(); * const onSubmit = data => { * return saveAsync(data).catch(error => setSubmissionErrors(error.body.details)); * }; * * return ( * <form onSubmit={handleSubmit(onSubmit)}> * ... * </form> * ); * }; */ export const setSubmissionErrors = ( errors: FieldValues, setError: UseFormSetError<FieldValues> ) => { const setErrorFromObject = (errors: FieldValues, rootPath: string) => { Object.entries(errors).forEach(([name, error]) => { if (typeof error === 'object') { setErrorFromObject(error, `${rootPath}${name}.`); return; } setError(`${rootPath}${name}`, { type: 'server', message: error.toString(), }); }); }; setErrorFromObject(errors, ''); };