Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3719 | | 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 } from 'react-hook-form';
3
 
4
import Form from '@components/common/form';
5
import Input from '@components/UI/inputs/Input';
6
import Button from '@components/UI/buttons/Buttons';
7
import Ckeditor from '@components/common/ckeditor/Ckeditor';
8
import LoadingWrapper from '@components/common/loading-wrapper';
9
import DatetimePicker from '@components/common/inputs/datetime-picker';
10
 
11
function ProgressForm({
12
  onSubmit = () => {},
13
  defaultValues = {
14
    date: null,
15
    quantitative_value: 0,
16
    qualitative_description: ''
17
  },
18
  values = {}
19
}) {
20
  const {
21
    control,
22
    formState: { errors, isSubmitting },
23
    handleSubmit
24
  } = useForm({
25
    defaultValues,
26
    values
27
  });
28
 
29
  return (
30
    <Form onSubmit={handleSubmit(onSubmit)}>
31
      <LoadingWrapper loading={isSubmitting} displayChildren>
32
        <Input
33
          control={control}
34
          label='Valor cuantitativo:'
35
          name='quantitative_value'
3748 stevensc 36
          color='secondary'
3719 stevensc 37
          type='number'
38
          rules={{ required: 'El valor es requerido' }}
39
          error={errors.quantitative_value?.message}
40
        />
41
 
42
        <Ckeditor
43
          control={control}
44
          name='qualitative_description'
45
          error={errors.qualitative_description?.message}
46
          rules={{ required: 'La descripción es requerida' }}
47
          label='Descripción cualitativa:'
48
        />
49
 
50
        <DatetimePicker
51
          label='Fecha'
52
          name='date'
53
          control={control}
3748 stevensc 54
          color='secondary'
3719 stevensc 55
          rules={{
56
            required: { value: true, message: 'La fecha es requerida' },
57
            validate: {
3748 stevensc 58
              noPreviousDay: (value) => {
59
                const yesterday = new Date(new Date().setDate(new Date().getDate() - 1));
60
                return new Date(value) > yesterday || 'La fecha debe ser mayor a la fecha actual';
61
              }
3719 stevensc 62
            }
63
          }}
64
          displayTime
65
          parseFormat='YYYY-MM-DD HH:mm:ss'
66
        />
67
 
68
        <Button color='primary' type='submit'>
69
          Enviar
70
        </Button>
71
      </LoadingWrapper>
72
    </Form>
73
  );
74
}
75
 
76
export default ProgressForm;