Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 5 | Rev 1217 | 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'
2
import { axios } from '../../utils'
3
import { Modal } from 'react-bootstrap'
4
import { useForm } from 'react-hook-form'
5
import { useDispatch } from 'react-redux'
6
import { addNotification } from '../../redux/notification/notification.actions'
7
 
8
import FormErrorFeedback from '../UI/FormErrorFeedback'
9
 
10
const CreateGroupModal = ({ isOpen, onClose }) => {
11
  const { register, handleSubmit, errors } = useForm()
12
  const dispatch = useDispatch()
13
 
14
  const onSubmitHandler = async (data) => {
15
    const formData = new FormData()
16
    Object.entries(data).map(([key, value]) => formData.append(key, value))
17
    axios
18
      .post('/chat/create-group', formData)
19
      .then(({ data: response }) => {
20
        const { success } = response
21
 
22
        if (!success) {
23
          dispatch(
24
            addNotification({
25
              style: 'danger',
655 stevensc 26
              message: 'Ha ocurrido un error, por favor intente más tarde.'
5 stevensc 27
            })
28
          )
29
          return
30
        }
31
 
32
        onClose()
33
      })
655 stevensc 34
      .catch((err) => {
35
        dispatch(addNotification({ style: 'danger', message: err.message }))
5 stevensc 36
      })
37
  }
38
 
39
  return (
40
    <Modal show={isOpen} onHide={onClose}>
41
      <Modal.Header closeButton>
42
        <Modal.Title>Crear grupo</Modal.Title>
43
      </Modal.Header>
44
      <Modal.Body>
45
        <form onSubmit={handleSubmit(onSubmitHandler)}>
655 stevensc 46
          <label className='mb-1' htmlFor='name'>
5 stevensc 47
            Nombre del grupo
48
          </label>
49
          <input
655 stevensc 50
            type='text'
51
            name='name'
52
            id='name'
5 stevensc 53
            ref={register({ required: 'Este campo es requerido' })}
54
          />
55
          {errors.name && (
56
            <FormErrorFeedback>{errors.name.message}</FormErrorFeedback>
57
          )}
655 stevensc 58
          <div className='mt-3 d-flex gap-3'>
59
            <button className='btn btn-primary' type='submit'>
5 stevensc 60
              Enviar
61
            </button>
655 stevensc 62
            <button className='btn btn-secondary' onClick={onClose}>
5 stevensc 63
              Cancelar
64
            </button>
65
          </div>
66
        </form>
67
      </Modal.Body>
68
    </Modal>
69
  )
70
}
71
 
72
export default CreateGroupModal