Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3658 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3719 stevensc 1
import React from 'react';
2
import { useForm, FormProvider } from 'react-hook-form';
3
 
4
import { Spinner } from '..';
5
 
6
export function Form({
7
  children,
8
  onSubmit,
9
  defaultValues,
10
  reset: propReset = false,
11
  style,
12
  ...rest
13
}) {
14
  const methods = useForm({ defaultValues });
15
  const {
16
    handleSubmit,
17
    reset,
18
    formState: { isSubmitting }
19
  } = methods;
20
 
21
  const handleFormSubmit = async (data) => {
22
    if (onSubmit) {
23
      await onSubmit(data);
24
    }
25
    if (propReset) {
26
      reset(undefined, { keepDefaultValues: true });
27
    }
28
  };
29
 
30
  return (
31
    <FormProvider {...methods}>
32
      <form
33
        onSubmit={handleSubmit(handleFormSubmit)}
34
        style={{ position: 'relative', ...style }}
35
        {...rest}
36
      >
37
        {children}
38
        {isSubmitting && <Spinner absolute />}
39
      </form>
40
    </FormProvider>
41
  );
42
}