Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Ir a la última revisión | | Ultima modificación | Ver Log |

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