Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 8064 | Rev 8110 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
7771 stevensc 1
import React, { useState } from 'react'
2
import SubmitModal from './SubmitModal'
3
import TagsInput from '../../../shared/TagsInput'
4
import { useEffect } from 'react'
5
 
8107 stevensc 6
const LanguageModal = ({
7
    closeModal,
8
    modalData,
9
    dataLink
10
}) => {
7771 stevensc 11
 
12
    const [settedLanguageTags, setSettedLanguageTags] = useState([]);
13
    const [languagesOptionsArray, setLanguagesOptionsArray] = useState([]);
8064 stevensc 14
    const [userLanguagesArray, setUserLanguagesArray] = useState([]);
7771 stevensc 15
 
16
    useEffect(() => {
8064 stevensc 17
        register("languages", {
18
            required: "Por favor seleccione al menos un lenguaje",
19
        });
20
    }, []);
7771 stevensc 21
 
22
    const handleTagsChange = (tags) => {
23
        if (tags.length) {
24
            let newTags = [];
25
            tags.map((tag) => {
26
                newTags = [...newTags, tag.value];
27
            });
28
            setValue("languages", newTags);
29
            setSettedLanguageTags(tags);
30
        } else {
31
            setValue("languages", "");
32
            setSettedLanguageTags("");
33
        }
34
    };
35
 
8064 stevensc 36
    useEffect(() => {
37
        let newUserLanguagesArray = [];
38
        Object.entries(userLanguages).map(([key, value]) => {
39
            newUserLanguagesArray = [
40
                ...newUserLanguagesArray,
41
                { value: key, name: value },
42
            ];
43
        });
44
        setUserLanguagesArray(newUserLanguagesArray);
45
    }, [userLanguages]);
46
 
47
    useEffect(() => {
48
        let newlanguagesOptionsArray = [];
49
        Object.entries(languagesOptions).map(([key, value]) => {
50
            newlanguagesOptionsArray = [
51
                ...newlanguagesOptionsArray,
52
                { value: key, name: value },
53
            ];
54
        });
55
        setLanguagesOptionsArray(newlanguagesOptionsArray);
56
    }, [languagesOptions]);
57
 
7771 stevensc 58
    return (
7773 stevensc 59
        <SubmitModal
60
            submitData={settedLanguageTags}
8064 stevensc 61
            closeModal={closeModal}
62
 
7773 stevensc 63
        >
7771 stevensc 64
            <TagsInput
65
                suggestions={languagesOptionsArray}
66
                settedTags={userLanguagesArray}
67
                onChange={handleTagsChange}
68
            />
69
        </SubmitModal>
70
    )
71
}
72
export default LanguageModal