Proyectos de Subversion LeadersLinked - SPA

Rev

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

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