Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3432 | | Comparar con el anterior | Ultima modificación | Ver Log |

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