Proyectos de Subversion LeadersLinked - SPA

Rev

| Ultima modificación | Ver Log |

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