| 8383 |
stevensc |
1 |
import React from "react";
|
|
|
2 |
import { useState, useEffect } from "react";
|
|
|
3 |
import { useForm } from "react-hook-form";
|
|
|
4 |
import TagsInput from "../../../shared/TagsInput";
|
|
|
5 |
import SubmitModal from "./SubmitModal";
|
|
|
6 |
import { getData } from "../../../helpers/fetchHelpers"
|
|
|
7 |
|
|
|
8 |
|
|
|
9 |
const DegreesModal = ({
|
|
|
10 |
closeModal,
|
|
|
11 |
dataLink
|
|
|
12 |
}) => {
|
|
|
13 |
|
|
|
14 |
const { register, errors } = useForm();
|
|
|
15 |
|
|
|
16 |
const [skillsSelecteds, setSkillsSelecteds] = useState([]);
|
|
|
17 |
const [userSkillsArray, setUserSkillsArray] = useState([]);
|
|
|
18 |
const [skillsOptionsArray, setSkillsOptionsArray] = useState([]);
|
|
|
19 |
const [data, setData] = useState({ "degrees[]": "" });
|
|
|
20 |
|
|
|
21 |
useEffect(() => {
|
|
|
22 |
register("skills", {
|
|
|
23 |
required: "Por favor seleccione al menos un lenguaje",
|
|
|
24 |
});
|
|
|
25 |
}, []);
|
|
|
26 |
|
|
|
27 |
const handleTagsChange = (tags) => {
|
|
|
28 |
if (tags.length) {
|
|
|
29 |
let newTags = [];
|
|
|
30 |
tags.map((tag) => {
|
|
|
31 |
newTags = [...newTags, tag.value];
|
|
|
32 |
});
|
|
|
33 |
setData({ "degrees[]": newTags });
|
|
|
34 |
} else {
|
|
|
35 |
setData({ "degrees[]": "" });
|
|
|
36 |
}
|
|
|
37 |
};
|
|
|
38 |
|
|
|
39 |
useEffect(() => {
|
|
|
40 |
getData(dataLink)
|
|
|
41 |
.then(({ skills_available, skills_selected }) => {
|
|
|
42 |
|
|
|
43 |
// Set languages options
|
|
|
44 |
Object.entries(skills_available).map(([key, value]) => {
|
|
|
45 |
setSkillsOptionsArray(prev => [...prev, { value: key, name: value }])
|
|
|
46 |
})
|
|
|
47 |
|
|
|
48 |
// Set languages selecteds
|
|
|
49 |
setSkillsSelecteds(skills_selected)
|
|
|
50 |
})
|
|
|
51 |
}, [dataLink]);
|
|
|
52 |
|
|
|
53 |
useEffect(() => {
|
|
|
54 |
skillsSelecteds.map(skill => {
|
|
|
55 |
console.log(skill)
|
|
|
56 |
console.log(skillsOptionsArray)
|
|
|
57 |
const userSkill = skillsOptionsArray.find(el => el.value === skill)
|
|
|
58 |
console.log(userSkill)
|
|
|
59 |
if (userSkill) {
|
|
|
60 |
setUserSkillsArray(prev => [...prev, { value: userSkill.value, name: userSkill.name }])
|
|
|
61 |
}
|
|
|
62 |
})
|
|
|
63 |
}, [skillsSelecteds, skillsOptionsArray]);
|
|
|
64 |
|
|
|
65 |
return (
|
|
|
66 |
<SubmitModal
|
|
|
67 |
title="Habilidades"
|
|
|
68 |
submitData={data}
|
|
|
69 |
postLink={dataLink}
|
|
|
70 |
closeModal={closeModal}
|
|
|
71 |
>
|
|
|
72 |
<div className="form-group">
|
|
|
73 |
<TagsInput
|
|
|
74 |
suggestions={skillsOptionsArray}
|
|
|
75 |
settedTags={userSkillsArray}
|
|
|
76 |
onChange={handleTagsChange}
|
|
|
77 |
/>
|
|
|
78 |
{errors.skills && <p>{errors.skills}</p>}
|
|
|
79 |
</div>
|
|
|
80 |
</SubmitModal>
|
|
|
81 |
);
|
|
|
82 |
};
|
|
|
83 |
|
|
|
84 |
export default DegreesModal;
|