Rev 2802 | 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(({ data: responseData }) => {
const { success } = responseData
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