Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2802 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5 stevensc 1
import React from 'react'
2
import { useForm } from 'react-hook-form'
2861 stevensc 3
import { useDispatch, useSelector } from 'react-redux'
5 stevensc 4
 
2092 stevensc 5
import { axios } from '@app/utils'
6
import { addNotification } from '@app/redux/notification/notification.actions'
1229 stevensc 7
 
2092 stevensc 8
import Modal from '../UI/modal/Modal'
9
import Input from '../UI/inputs/Input'
5 stevensc 10
 
11
const AddProfileModal = ({
12
  show = '',
13
  onHide = () => null,
2861 stevensc 14
  getProfiles = () => null
5 stevensc 15
}) => {
16
  const labels = useSelector(({ intl }) => intl.labels)
2861 stevensc 17
  const dispatch = useDispatch()
2092 stevensc 18
 
2802 stevensc 19
  const {
2861 stevensc 20
    control,
2802 stevensc 21
    handleSubmit,
22
    formState: { errors }
23
  } = useForm()
5 stevensc 24
 
1229 stevensc 25
  const onSubmitHandler = handleSubmit(async (data) => {
1979 stevensc 26
    const formData = new FormData()
27
    Object.entries(data).map(([key, value]) => formData.append(key, value))
28
 
2861 stevensc 29
    try {
30
      const response = await axios.post('/profile/my-profiles/add', formData)
31
      const { data, success } = response.data
5 stevensc 32
 
2861 stevensc 33
      if (!success) throw new Error('Error al crear el perfil')
5 stevensc 34
 
2861 stevensc 35
      addNotification({ style: 'success', msg: data })
36
      getProfiles()
37
      onHide()
38
    } catch (error) {
39
      dispatch(addNotification({ style: 'danger', msg: error.message }))
40
    }
1229 stevensc 41
  })
5 stevensc 42
 
43
  return (
1229 stevensc 44
    <Modal
45
      title={labels.new_profile}
46
      show={show}
47
      onHide={onHide}
48
      onAccept={onSubmitHandler}
49
      onClose={onHide}
50
    >
2092 stevensc 51
      <Input
1229 stevensc 52
        name='name'
2093 stevensc 53
        placeholder={labels.create_profile}
2861 stevensc 54
        control={control}
55
        rules={{ required: 'Este campo es requerido' }}
2092 stevensc 56
        error={errors.name?.message}
1229 stevensc 57
      />
5 stevensc 58
    </Modal>
59
  )
60
}
61
 
2861 stevensc 62
export default AddProfileModal