Rev 8378 | 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 LanguageModal = ({closeModal,dataLink}) => {const { register, errors } = useForm()const [languagesSelecteds, setLanguagesSelecteds] = useState([])const [userLanguagesArray, setUserLanguagesArray] = useState([])const [languagesOptionsArray, setLanguagesOptionsArray] = useState([])const [data, setData] = useState({ languages: '' })useEffect(() => {register('languages', {required: 'Por favor seleccione al menos un lenguaje',})}, [])const handleTagsChange = (tags) => {if (tags.length) {let newTags = []tags.map((tag) => {newTags = [...newTags, { 'languages[]': tag.value }]})setData(newTags)} else {setData({ 'languages[]': '' })}}useEffect(() => {getData(dataLink).then(({ languages_available, languages_selected }) => {// Set languages optionsObject.entries(languages_available).map(([key, value]) => {setLanguagesOptionsArray(prev => [...prev, { value: key, name: value }])})// Set languages selectedssetLanguagesSelecteds([...languagesSelecteds, ...languages_selected])})}, [dataLink])useEffect(() => {languagesSelecteds.map(lang => {const userLang = languagesOptionsArray.find(el => el.value === lang)if (userLang) {setUserLanguagesArray(prev => [...prev, { value: userLang.value, name: userLang.name }])}})}, [languagesSelecteds, languagesOptionsArray])return (<SubmitModaltitle="Idiomas"submitData={data}postLink={dataLink}closeModal={closeModal}><div className="form-group"><TagsInputsuggestions={languagesOptionsArray}settedTags={userLanguagesArray}onChange={handleTagsChange}/>{errors.languages && <p>{errors.languages}</p>}</div></SubmitModal>)}export default LanguageModal