Rev 2799 | Rev 3692 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from "react";
import { useDispatch, useSelector } 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 AddCompanyModal = ({
show = false,
onHide = () => null,
fetchCompanies = () => [],
}) => {
const { data: companySizes } = useFetchHelper("company-sizes");
const { data: industries } = useFetchHelper("industries");
const labels = useSelector(({ intl }) => intl.labels);
const dispatch = useDispatch();
const {
control,
handleSubmit,
formState: { errors },
} = useForm();
const onSubmit = handleSubmit((data) => {
const formData = new FormData();
Object.entries(data).map(([key, value]) => formData.append(key, value));
axios
.post("/company/my-companies/add", formData)
.then((response) => {
const { success, data } = response.data;
if (!success) {
const errorMessage =
typeof data === "string"
? data
: Object.entries(data).map(
([key, value]) => `${key}: ${value[0]}`
);
dispatch(addNotification({ style: "danger", msg: errorMessage }));
return;
}
fetchCompanies();
onHide();
})
.catch((err) => {
dispatch(addNotification({ style: "danger", msg: err.message }));
});
});
return (
<Modal
title={labels.new_company}
show={show}
onClose={onHide}
onAccept={onSubmit}
>
<Input
name="name"
placeholder={labels.name_of_company}
error={errors.name?.message}
control={control}
rules={{ required: "Por favor ingrese el nombre de la Empresa" }}
/>
<Select
name="industry_id"
options={industries}
control={control}
rules={{ required: labels.select_industry }}
error={errors.industry_id?.message}
/>
<Select
name="company_size_id"
options={companySizes}
control={control}
rules={{ required: labels.select_company_size }}
error={errors.company_size_id?.message}
/>
</Modal>
);
};
export default AddCompanyModal;