Rev 2858 | AutorÃa | Ultima modificación | Ver Log |
import React from "react";
import { useDispatch } from "react-redux";
import { useForm } from "react-hook-form";
import { axios } from "@app/utils";
import { useFetchHelper } from "@hooks";
import { addNotification } from "@app/redux/notification/notification.actions";
import Modal from "@components/UI/modal/Modal";
import Input from "@components/UI/inputs/Input";
import Select from "@components/UI/inputs/Select";
const AddGroupModal = ({ show, onHide, fetchGroups }) => {
const { data: groupTypes } = useFetchHelper("group-types");
const { data: industries } = useFetchHelper("industries");
const dispatch = useDispatch();
const {
control,
handleSubmit,
formState: { errors },
} = useForm();
const onSubmit = handleSubmit((data) => {
const formData = new FormData();
Object.entries(data).forEach(([key, value]) => formData.append(key, value));
axios
.post(`/group/my-groups/add`, formData)
.then((response) => {
const { success } = response.data;
if (!success) throw new Error("Error al crear el grupo");
fetchGroups();
onHide();
})
.catch((err) => {
dispatch(addNotification({ style: "danger", msg: err.message }));
});
});
return (
<Modal title="Nuevo Grupo" show={show} onClose={onHide} onAccept={onSubmit}>
<Input
label="Nombre"
name="name"
placeholder="Nombre del grupo"
control={control}
rules={{ required: "Este campo es requerido" }}
error={errors.name?.message}
/>
<Select
label="Industria"
name="type_id"
control={control}
rules={{ required: "Por favor eliga un tipo" }}
error={errors.type_id?.message}
options={groupTypes}
/>
<Select
label="Tipo"
name="industry_id"
control={control}
rules={{ required: "Por favor eliga un tipo" }}
error={errors.industry_id?.message}
options={industries}
/>
</Modal>
);
};
export default AddGroupModal;