Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
5 stevensc 1
import React from 'react'
1217 stevensc 2
import { useDispatch } from 'react-redux'
3
import { useForm } from 'react-hook-form'
4
 
5 stevensc 5
import { axios } from '../../utils'
6
import { addNotification } from '../../redux/notification/notification.actions'
7
 
1384 stevensc 8
import Modal from 'components/UI/modal/Modal'
1437 stevensc 9
import FormErrorFeedback from 'components/UI/form/FormErrorFeedback'
5 stevensc 10
 
11
const CreateGroupModal = ({ isOpen, onClose }) => {
12
  const { register, handleSubmit, errors } = useForm()
13
  const dispatch = useDispatch()
14
 
1217 stevensc 15
  const onSubmitHandler = handleSubmit(async (data) => {
1979 stevensc 16
    const formData = new FormData()
17
    Object.entries(data).map(([key, value]) => formData.append(key, value))
5 stevensc 18
    axios
1979 stevensc 19
      .post('/chat/create-group', formData)
5 stevensc 20
      .then(({ data: response }) => {
21
        const { success } = response
22
 
23
        if (!success) {
24
          dispatch(
25
            addNotification({
26
              style: 'danger',
655 stevensc 27
              message: 'Ha ocurrido un error, por favor intente más tarde.'
5 stevensc 28
            })
29
          )
30
          return
31
        }
32
 
33
        onClose()
34
      })
655 stevensc 35
      .catch((err) => {
36
        dispatch(addNotification({ style: 'danger', message: err.message }))
5 stevensc 37
      })
1217 stevensc 38
  })
5 stevensc 39
 
40
  return (
1217 stevensc 41
    <Modal
42
      title='Crear grupo'
43
      show={isOpen}
44
      onClose={onClose}
1426 stevensc 45
      onReject={onClose}
1217 stevensc 46
      onAccept={onSubmitHandler}
47
    >
48
      <label className='mb-1' htmlFor='name'>
49
        Nombre del grupo
50
      </label>
51
      <input
52
        type='text'
53
        name='name'
54
        id='name'
55
        ref={register({ required: 'Este campo es requerido' })}
56
      />
57
      {errors.name && (
58
        <FormErrorFeedback>{errors.name.message}</FormErrorFeedback>
59
      )}
5 stevensc 60
    </Modal>
61
  )
62
}
63
 
64
export default CreateGroupModal