Rev 3658 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react';
import { useForm, FormProvider } from 'react-hook-form';
import { Spinner } from '..';
export function Form({
children,
onSubmit,
defaultValues,
reset: propReset = false,
style,
...rest
}) {
const methods = useForm({ defaultValues });
const {
handleSubmit,
reset,
formState: { isSubmitting }
} = methods;
const handleFormSubmit = async (data) => {
if (onSubmit) {
await onSubmit(data);
}
if (propReset) {
reset(undefined, { keepDefaultValues: true });
}
};
return (
<FormProvider {...methods}>
<form
onSubmit={handleSubmit(handleFormSubmit)}
style={{ position: 'relative', ...style }}
{...rest}
>
{children}
{isSubmitting && <Spinner absolute />}
</form>
</FormProvider>
);
}