Rev 8392 | Ir a la última revisión | 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 DegreesModal = ({closeModal,dataLink}) => {const { register, errors } = useForm();const [degreesSelecteds, setDegreesSelecteds] = useState([]);const [userDegreesArray, setUserDegreesArray] = useState([]);const [degreesOptionsArray, setDegreesOptionsArray] = useState([]);const [data, setData] = useState({ "degrees[]": "" });useEffect(() => {register("degrees", {required: "Por favor seleccione al menos un lenguaje",});}, []);const handleTagsChange = (tags) => {if (tags.length) {let newTags = [];tags.map((tag) => {newTags = [...newTags, tag.value];});setData({ "degrees[]": newTags });} else {setData({ "degrees[]": "" });}};useEffect(() => {getData(dataLink).then(({ degrees_available, degrees_selected }) => {Object.entries(degrees_available).map(([key, value]) => {setDegreesOptionsArray(prev => [...prev, { value: key, name: value }])})setDegreesSelecteds(degrees_selected)})}, [dataLink]);useEffect(() => {degreesSelecteds.map(skill => {const userSkill = degreesOptionsArray.find(el => el.value === skill)if (userSkill) {setUserDegreesArray(prev => [...prev, { value: userSkill.value, name: userSkill.name }])}})}, [degreesSelecteds, degreesOptionsArray]);return (<SubmitModaltitle="Grados"submitData={data}postLink={dataLink}closeModal={closeModal}><div className="form-group"><TagsInputsuggestions={degreesOptionsArray}settedTags={userDegreesArray}onChange={handleTagsChange}/>{errors.degrees && <p>{errors.degrees}</p>}</div></SubmitModal>);};export default DegreesModal;