Rev 6348 | Rev 6350 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */import React, { useEffect, useState } from 'react'import { axios } from '../../../utils'import { useForm } from 'react-hook-form'import { useDispatch } from 'react-redux'import { Button, Modal } from 'react-bootstrap'import { addNotification } from '../../../redux/notification/notification.actions'import Spinner from '../../../shared/loading-spinner/Spinner'import TagsInput from '../../../shared/tags-input/TagsInput'import FormErrorFeedback from '../../../shared/form-error-feedback/FormErrorFeedback'const AptitudesModal = ({show = false,userIdEncrypted = '',aptitudesOptions = [],userAptitudes = [],closeModal = () => {},setAptitudes = () => {},}) => {const { register, errors, handleSubmit, setValue, setError } = useForm()const [modalLoading, setModalLoading] = useState(false)const dispatch = useDispatch()const handleModalOpen = () => {setValue('aptitudes', '')closeModal()}const handleTagsChange = (tags) => {setValue('aptitudes', tags)}const onSubmitHandler = async ({ aptitudes }) => {setModalLoading(true)console.log(aptitudes)const formData = new FormData()aptitudes.map((aptitude) => formData.append('aptitudes[]', aptitude.value))axios.post(`/profile/my-profiles/aptitude/${userIdEncrypted}`, formData).then(({ data: response }) => {const { data, success } = responseif (!success) {const resError = datatypeof resError === 'string'? Object.entries(resError).map(([key, value]) => {setError('aptitudes', {type: 'manual',message: Array.isArray(value) ? value[0] : value,})}): dispatch(addNotification({ style: 'danger', msg: resError }))return}setAptitudes(aptitudes)dispatch(addNotification({ style: 'success', msg: 'Registro actualizado' }))handleModalOpen()})setModalLoading(false)}useEffect(() => {register('aptitudes')}, [])return (<Modal show={show} onHide={handleModalOpen}><Modal.Header closeButton><Modal.Title>Aptitudes</Modal.Title></Modal.Header><form onSubmit={handleSubmit(onSubmitHandler)}><Modal.Body><div className="form-group"><TagsInputsuggestions={aptitudesOptions}settedTags={userAptitudes}onChange={handleTagsChange}/>{errors.aptitudes && (<FormErrorFeedback>{errors.aptitudes.message}</FormErrorFeedback>)}</div></Modal.Body><Modal.Footer><Button size="sm" type="submit">Enviar</Button><Button size="sm" variant="danger" onClick={handleModalOpen}>Cancelar</Button></Modal.Footer></form>{modalLoading && <Spinner />}</Modal>)}export default AptitudesModal