Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3325 | Rev 3328 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3320 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'
3324 stevensc 9
import DatetimePicker from '@components/common/inputs/datetime-picker'
3320 stevensc 10
 
11
function ProgressForm({
12
  onSubmit = () => {},
13
  defaultValues = {
3327 stevensc 14
    date: null,
3320 stevensc 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,
3327 stevensc 26
    values: values ?? { ...values, date: new Date(values.date) }
3320 stevensc 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'
36
          type='number'
37
          rules={{ required: 'El valor es requerido' }}
38
          error={errors.quantitative_value?.message}
39
        />
40
 
41
        <Ckeditor
42
          control={control}
43
          name='qualitative_description'
44
          error={errors.qualitative_description?.message}
45
          rules={{ required: 'La descripción es requerida' }}
46
          label='Descripción cualitativa:'
47
        />
48
 
3327 stevensc 49
        <DatetimePicker
50
          label='Fecha'
51
          name='date'
52
          control={control}
53
          rules={{
54
            required: { value: true, message: 'La fecha es requerida' },
55
            validate: {
56
              beGreaterThanToday: (value) =>
57
                new Date(value) > new Date() ||
58
                'La fecha debe ser mayor a la fecha actual'
59
            }
60
          }}
61
          displayTime
62
          parseFormat='YYYY-MM-DD HH:mm:ss'
63
        />
64
 
3320 stevensc 65
        <Button color='primary' type='submit'>
66
          Enviar
67
        </Button>
68
      </LoadingWrapper>
69
    </Form>
70
  )
71
}
72
 
73
export default ProgressForm