Proyectos de Subversion LeadersLinked - SPA

Rev

| 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";
1460 stevensc 4
 
3432 stevensc 5
import { axios } from "@app/utils";
6
import { useFetchHelper } from "@hooks";
7
import { addNotification } from "@app/redux/notification/notification.actions";
5 stevensc 8
 
3432 stevensc 9
import Modal from "@components/UI/modal/Modal";
10
import Input from "@components/UI/inputs/Input";
11
import Select from "@components/UI/inputs/Select";
5 stevensc 12
 
467 stevensc 13
const AddGroupModal = ({ show, onHide, fetchGroups }) => {
3432 stevensc 14
  const { data: groupTypes } = useFetchHelper("group-types");
15
  const { data: industries } = useFetchHelper("industries");
16
  const dispatch = useDispatch();
5 stevensc 17
 
2802 stevensc 18
  const {
2858 stevensc 19
    control,
2802 stevensc 20
    handleSubmit,
3432 stevensc 21
    formState: { errors },
22
  } = useForm();
5 stevensc 23
 
1460 stevensc 24
  const onSubmit = handleSubmit((data) => {
3432 stevensc 25
    const formData = new FormData();
26
    Object.entries(data).forEach(([key, value]) => formData.append(key, value));
1979 stevensc 27
 
5 stevensc 28
    axios
1979 stevensc 29
      .post(`/group/my-groups/add`, formData)
3432 stevensc 30
      .then((response) => {
31
        const { success } = response.data;
32
 
33
        if (!success) throw new Error("Error al crear el grupo");
34
        fetchGroups();
35
        onHide();
5 stevensc 36
      })
37
      .catch((err) => {
3432 stevensc 38
        dispatch(addNotification({ style: "danger", msg: err.message }));
39
      });
40
  });
5 stevensc 41
 
42
  return (
3432 stevensc 43
    <Modal title="Nuevo Grupo" show={show} onClose={onHide} onAccept={onSubmit}>
2088 stevensc 44
      <Input
3432 stevensc 45
        label="Nombre"
46
        name="name"
47
        placeholder="Nombre del grupo"
2858 stevensc 48
        control={control}
3432 stevensc 49
        rules={{ required: "Este campo es requerido" }}
2088 stevensc 50
        error={errors.name?.message}
51
      />
689 stevensc 52
 
2858 stevensc 53
      <Select
3432 stevensc 54
        label="Industria"
55
        name="type_id"
2858 stevensc 56
        control={control}
3432 stevensc 57
        rules={{ required: "Por favor eliga un tipo" }}
2858 stevensc 58
        error={errors.type_id?.message}
59
        options={groupTypes}
60
      />
689 stevensc 61
 
2858 stevensc 62
      <Select
3432 stevensc 63
        label="Tipo"
64
        name="industry_id"
2858 stevensc 65
        control={control}
3432 stevensc 66
        rules={{ required: "Por favor eliga un tipo" }}
2858 stevensc 67
        error={errors.industry_id?.message}
68
        options={industries}
69
      />
5 stevensc 70
    </Modal>
3432 stevensc 71
  );
72
};
5 stevensc 73
 
3432 stevensc 74
export default AddGroupModal;