Rev 11246 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react'import { useState, useEffect } from 'react'import { useForm } from 'react-hook-form'import TagsInput from '../../../shared/TagsInput'import SubmitModal from './SubmitModal'import { getData } from '../../../helpers/fetchHelpers'const SkillsModal = ({closeModal,dataLink}) => {const { register, errors } = useForm()const [skillsSelecteds, setSkillsSelecteds] = useState([])const [userSkillsArray, setUserSkillsArray] = useState([])const [skillsOptionsArray, setSkillsOptionsArray] = useState([])const [data, setData] = useState([{ 'skills[]': '' }])useEffect(() => {register('skills', {required: 'Por favor seleccione al menos un lenguaje',})}, [])const handleTagsChange = (tags) => {if (tags.length) {let newTags = []tags.map((tag) => {newTags = [...newTags, { 'skills[]': tag.value }]})setData(newTags)} else {setData({ 'skills[]': '' })}}useEffect(() => {getData(dataLink).then(({ skills_available, skills_selected }) => {Object.entries(skills_available).map(([key, value]) => {setSkillsOptionsArray(prev => [...prev, { value: key, name: value }])})setSkillsSelecteds(skills_selected)})}, [dataLink])useEffect(() => {skillsSelecteds.map(skill => {const userSkill = skillsOptionsArray.find(el => el.value === skill)if (userSkill) {setUserSkillsArray(prev => [...prev, { value: userSkill.value, name: userSkill.name }])}})}, [skillsSelecteds, skillsOptionsArray])return (<SubmitModaltitle="Habilidades"submitData={data}postLink={dataLink}closeModal={closeModal}><div className="form-group"><TagsInputsuggestions={skillsOptionsArray}settedTags={userSkillsArray}onChange={handleTagsChange}/>{errors.skills && <p>{errors.skills}</p>}</div></SubmitModal>)}export default SkillsModal