Rev 14206 | Rev 14230 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable no-mixed-spaces-and-tabs */import axios from 'axios'import React, { useEffect, useState } from 'react'import { useForm } from 'react-hook-form'import { useDispatch } from 'react-redux'import { useHistory, useParams } from 'react-router-dom'import { addNotification } from '../../redux/notification/notification.actions'const pointsOptions = [{ label: 'Sugerir otro cargo', value: 0 },{ label: '25%', value: 1 },{ label: '50%', value: 2 },{ label: '75%', value: 3 },{ label: '100%', value: 4 }]const FormView = ({actionLink = '',setActionLink = function () { }}) => {// Hooksconst dispatch = useDispatch()const history = useHistory()const { action } = useParams()const { setValue, register, watch, handleSubmit } = useForm()//Statesconst [data, setData] = useState({})const [supervisers, setSupervisers] = useState([])const onSubmit = () => {const submitData = new FormData()/* const content = []jobDescription.competencies.forEach(competency => competency.behaviors.forEach(behavior => {content.push({competencyUuid: behavior.competency_uuid,behaviorUuid: behavior.uuid,comment: watch(`${behavior.competency_uuid}-${behavior.uuid}-comment`),evaluation: watch(`select-${behavior.competency_uuid}-${behavior.uuid}`)})}))submitData.append('content', JSON.stringify(content))submitData.append('points', watch('points')) *///.append('comment', watch('comment'))axios.post(actionLink, submitData).then(({ data }) => {if (!data.success) {return dispatch(addNotification({style: 'danger',msg: typeof data.data === 'string'? data.data: 'Ha ocurrido un error'}))}history.goBack()setActionLink('')dispatch(addNotification({style: 'success',msg: `Registro ${action === 'edit' ? 'actualizado' : 'añadido'}`}))})}useEffect(() => {axios.get(actionLink).then(({ data }) => {if (!data.success) {return dispatch(addNotification({style: 'danger',msg: 'Ha ocurrido un error'}))}setSupervisers(data.data['supervisers'].map(option => {return {key: option.name,value: option.uuid}}))setValue('name', data.data['name'])setValue('job_description_id_boss', data.data['job_description_id_boss'])})}, [action])return (<section className="content"><div className="container-fluid"><div className="row"><div className="col-12"><form onSubmit={handleSubmit(onSubmit)}><div className='card'><div className="card-header"><ul className="nav nav-tabs" id="myTab" role="tablist"><li className="nav-item" role="presentation"><button className="nav-link active" id="home-tab" data-toggle="tab" data-target="#home" type="button" role="tab" aria-controls="home" aria-selected="true">General</button></li><li className="nav-item" role="presentation"><button className="nav-link" id="profile-tab" data-toggle="tab" data-target="#profile" type="button" role="tab" aria-controls="profile" aria-selected="false">Competencias</button></li><li className="nav-item" role="presentation"><button className="nav-link" id="contact-tab" data-toggle="tab" data-target="#contact" type="button" role="tab" aria-controls="contact" aria-selected="false">Conclusiones</button></li></ul></div><div className="card-body"><div className="tab-content" id="myTabContent"><div className="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab"><div className="card"><div className="row"><div className="col-4"><div className="form-group"><label>Nombre</label><input type="text" name='name' ref={register} /></div></div><div className="col-4"><div className="form-group"><label>Nombre</label><select className='form-control' name="job_description_id_boss" ref={register}><option value="">No aplica</option>{supervisers.map(({ key, value }) =><option key={value} value={value}>{key}</option>)}</select></div></div></div></div></div><div className="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab"></div><div className="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab"></div></div><div className="form-group"><button type="submit" className="btn btn-primary btn-form-save-close mr-2">Guardar & Cerrar</button><buttontype="button"className="btn btn-secondary btn-edit-cancel"onClick={() => history.goBack()}>Cancelar</button></div></div></div></form></div></div></div></section >)}export default FormView