Proyectos de Subversion LeadersLinked - SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
2652 stevensc 1
import React from 'react'
2
import { useForm } from 'react-hook-form'
3
import Datetime from 'react-datetime'
4
 
2780 stevensc 5
import { useGoals } from '@hooks'
2652 stevensc 6
 
7
import Modal from '@components/UI/modal/Modal'
8
import Input from '@components/UI/inputs/Input'
9
import Ckeditor from '@components/UI/Ckeditor'
2655 stevensc 10
import TagsInput from '@components/UI/TagsInput'
2652 stevensc 11
 
2653 stevensc 12
import 'react-datetime/css/react-datetime.css'
13
 
2652 stevensc 14
export function GoalModal() {
15
  const { toggleModal, showModal, addGoal } = useGoals()
2655 stevensc 16
  const habits = [
17
    {
18
      value: 1,
19
      name: 'Ejercicio Diario'
20
    },
21
    {
22
      value: 2,
23
      name: 'Leer 1 Hora'
24
    },
25
    {
26
      value: 3,
27
      name: 'Meditar'
28
    }
29
  ]
2652 stevensc 30
 
2802 stevensc 31
  const {
2857 stevensc 32
    control,
2802 stevensc 33
    handleSubmit,
34
    setValue,
35
    formState: { errors }
36
  } = useForm({
2652 stevensc 37
    defaultValues: {
38
      title: '',
39
      description: '',
40
      value: 1,
41
      finishDate: Date.now(),
42
      habits: []
43
    }
44
  })
45
 
46
  const onSubmit = handleSubmit(({ goal }) => addGoal(goal))
47
 
48
  return (
49
    <Modal
50
      show={showModal}
51
      title='Propósito'
52
      onClose={toggleModal}
53
      onAccept={onSubmit}
54
    >
55
      <Input
2857 stevensc 56
        name='title'
2652 stevensc 57
        label='Titulo'
58
        placeholder='Define el título de tu meta'
2857 stevensc 59
        control={control}
60
        rules={{ required: 'Este campo es requerido' }}
2652 stevensc 61
        error={errors.title?.message}
62
      />
63
 
64
      <Input
2857 stevensc 65
        type='number'
66
        name='value'
2652 stevensc 67
        label='Valor'
68
        placeholder='Define un valor a meta'
2857 stevensc 69
        control={control}
70
        rules={{ required: 'Este campo es requerido' }}
2652 stevensc 71
        error={errors.value?.message}
72
      />
2857 stevensc 73
 
2655 stevensc 74
      <TagsInput
2661 stevensc 75
        name='habits'
76
        label='Habitos'
2655 stevensc 77
        suggestions={habits}
2857 stevensc 78
        onChange={(tags) => setValue('habits', tags)}
2655 stevensc 79
      />
2652 stevensc 80
      <Datetime
81
        dateFormat='DD-MM-YYYY'
2654 stevensc 82
        timeFormat={false}
2652 stevensc 83
        inputProps={{ className: 'form-control' }}
84
        initialValue={Date.parse(new Date())}
85
        closeOnSelect
86
      />
87
      <Ckeditor
88
        label='Descripción'
2857 stevensc 89
        name='description'
90
        control={control}
91
        rules={{ required: 'Este campo es requerido' }}
92
        error={errors.description?.message}
2652 stevensc 93
      />
94
    </Modal>
95
  )
96
}