Rev 1971 | Rev 2092 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react'import { useForm } from 'react-hook-form'import { connect, useSelector } from 'react-redux'import { axios } from '../../utils'import { addNotification } from '../../redux/notification/notification.actions'import FormErrorFeedback from '../UI/form/FormErrorFeedback'import Modal from 'components/UI/modal/Modal'const AddProfileModal = ({show = '',onHide = () => null,getProfiles = () => null,addNotification // redux action}) => {const labels = useSelector(({ intl }) => intl.labels)const { register, handleSubmit, errors } = useForm()const onSubmitHandler = handleSubmit(async (data) => {const formData = new FormData()Object.entries(data).map(([key, value]) => formData.append(key, value))axios.post('/profile/my-profiles/add', formData).then(({ data: response }) => {const { data, success } = responseif (!success) {const errorMessage =typeof data === 'string'? data: 'Ha ocurrido un error, por favor intente más tarde'addNotification({ style: 'success', msg: errorMessage })return}getProfiles()addNotification({ style: 'success', msg: data })onHide()}).catch((err) => {console.log(err)throw new Error(err)})})return (<Modaltitle={labels.new_profile}show={show}onHide={onHide}onAccept={onSubmitHandler}onClose={onHide}onReject={onHide}><inputtype='text'name='name'placeholder={labels.profile_name}ref={register({ required: 'Este campo es requerido' })}/>{errors.name && (<FormErrorFeedback>{errors.name.message}</FormErrorFeedback>)}</Modal>)}const mapDispatchToProps = {addNotification: (notification) => addNotification(notification)}export default connect(null, mapDispatchToProps)(AddProfileModal)