Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3645 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3645 Rev 3658
Línea 1... Línea 1...
1
import React, { useEffect } from 'react';
1
import React from 'react';
2
import { useForm, FormProvider } from 'react-hook-form';
2
import { useForm, FormProvider } from 'react-hook-form';
Línea 3... Línea 3...
3
 
3
 
4
import { Spinner } from '..';
-
 
Línea 5... Línea 4...
5
import { useAlert, useApi } from '@shared/hooks';
4
import { Spinner } from '..';
6
 
5
 
7
export function Form({
6
export function Form({
8
  children,
7
  children,
9
  onSubmit,
-
 
10
  defaultValues,
8
  onSubmit,
11
  defaultValuesPromise,
9
  defaultValues,
12
  reset: propReset = false,
10
  reset: propReset = false,
13
  style,
11
  style,
14
  ...rest
12
  ...rest
Línea 18... Línea 16...
18
    handleSubmit,
16
    handleSubmit,
19
    reset,
17
    reset,
20
    formState: { isSubmitting }
18
    formState: { isSubmitting }
21
  } = methods;
19
  } = methods;
Línea 22... Línea -...
22
 
-
 
23
  const { showError } = useAlert();
-
 
24
 
-
 
25
  const { loading, execute } = useApi(defaultValuesPromise, {
-
 
26
    onSuccess: (data) => {
-
 
27
      reset(data);
-
 
28
    },
-
 
29
    onError: (error) => {
-
 
30
      showError(error.message);
-
 
31
    }
-
 
32
  });
-
 
33
 
-
 
34
  useEffect(() => {
-
 
35
    if (defaultValuesPromise) execute();
-
 
36
  }, [defaultValuesPromise]);
-
 
37
 
20
 
38
  const handleFormSubmit = async (data) => {
21
  const handleFormSubmit = async (data) => {
39
    if (onSubmit) {
22
    if (onSubmit) {
40
      await onSubmit(data);
23
      await onSubmit(data);
41
    }
24
    }
Línea 50... Línea 33...
50
        onSubmit={handleSubmit(handleFormSubmit)}
33
        onSubmit={handleSubmit(handleFormSubmit)}
51
        style={{ position: 'relative', ...style }}
34
        style={{ position: 'relative', ...style }}
52
        {...rest}
35
        {...rest}
53
      >
36
      >
54
        {children}
37
        {children}
55
        {(isSubmitting || loading) && <Spinner absolute />}
38
        {isSubmitting && <Spinner absolute />}
56
      </form>
39
      </form>
57
    </FormProvider>
40
    </FormProvider>
58
  );
41
  );
59
}
42
}