Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 8409 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 8409 Rev 11256
Línea 1... Línea 1...
1
import React from "react";
1
import React from 'react'
2
import { useState, useEffect } from "react";
2
import { useState, useEffect } from 'react'
3
import { useForm } from "react-hook-form";
3
import { useForm } from 'react-hook-form'
4
import TagsInput from "../../../shared/TagsInput";
4
import TagsInput from '../../../shared/TagsInput'
5
import SubmitModal from "./SubmitModal";
5
import SubmitModal from './SubmitModal'
6
import { getData } from "../../../helpers/fetchHelpers"
6
import { getData } from '../../../helpers/fetchHelpers'
Línea 7... Línea 7...
7
 
7
 
8
 
8
 
9
const DegreesModal = ({
9
const DegreesModal = ({
10
    closeModal,
10
	closeModal,
Línea 11... Línea 11...
11
    dataLink
11
	dataLink
Línea 12... Línea 12...
12
}) => {
12
}) => {
13
 
13
 
14
    const { register, errors } = useForm();
14
	const { register, errors } = useForm()
15
 
15
 
16
    const [degreesSelecteds, setDegreesSelecteds] = useState([]);
16
	const [degreesSelecteds, setDegreesSelecteds] = useState([])
17
    const [userDegreesArray, setUserDegreesArray] = useState([]);
17
	const [userDegreesArray, setUserDegreesArray] = useState([])
18
    const [degreesOptionsArray, setDegreesOptionsArray] = useState([]);
18
	const [degreesOptionsArray, setDegreesOptionsArray] = useState([])
19
    const [data, setData] = useState({ "degrees[]": "" });
19
	const [data, setData] = useState({ 'degrees[]': '' })
20
 
20
 
21
    useEffect(() => {
21
	useEffect(() => {
22
        register("degrees", {
22
		register('degrees', {
23
            required: "Por favor seleccione al menos un lenguaje",
23
			required: 'Por favor seleccione al menos un lenguaje',
24
        });
24
		})
25
    }, []);
25
	}, [])
26
 
26
 
27
    const handleTagsChange = (tags) => {
27
	const handleTagsChange = (tags) => {
28
        if (tags.length) {
28
		if (tags.length) {
29
            let newTags = [];
29
			let newTags = []
30
            tags.map((tag) => {
30
			tags.map((tag) => {
31
                newTags = [...newTags, tag.value];
31
				newTags = [...newTags, { 'degrees[]': tag.value }]
32
            });
32
			})
33
            setData({ "degrees[]": newTags });
33
			setData(newTags)
34
        } else {
34
		} else {
35
            setData({ "degrees[]": "" });
35
			setData({ 'degrees[]': '' })
36
        }
36
		}
37
    };
37
	}
38
 
38
 
39
    useEffect(() => {
39
	useEffect(() => {
40
        getData(dataLink)
40
		getData(dataLink)
41
            .then(({ degrees_available, degrees_selected }) => {
41
			.then(({ degrees_available, degrees_selected }) => {
42
 
42
 
43
                Object.entries(degrees_available).map(([key, value]) => {
43
				Object.entries(degrees_available).map(([key, value]) => {
44
                    setDegreesOptionsArray(prev => [...prev, { value: key, name: value }])
44
					setDegreesOptionsArray(prev => [...prev, { value: key, name: value }])
45
                })
45
				})
46
 
46
 
47
                setDegreesSelecteds(degrees_selected)
47
				setDegreesSelecteds(degrees_selected)
48
            })
48
			})
49
    }, [dataLink]);
49
	}, [dataLink])
50
 
50
 
51
    useEffect(() => {
51
	useEffect(() => {
52
        degreesSelecteds.map(skill => {
52
		degreesSelecteds.map(skill => {
53
            const userSkill = degreesOptionsArray.find(el => el.value === skill)
53
			const userSkill = degreesOptionsArray.find(el => el.value === skill)
54
            if (userSkill) {
54
			if (userSkill) {
55
                setUserDegreesArray(prev => [...prev, { value: userSkill.value, name: userSkill.name }])
55
				setUserDegreesArray(prev => [...prev, { value: userSkill.value, name: userSkill.name }])
56
            }
56
			}
57
        })
57
		})
58
    }, [degreesSelecteds, degreesOptionsArray]);
58
	}, [degreesSelecteds, degreesOptionsArray])
59
 
59
 
60
    return (
60
	return (
61
        <SubmitModal
61
		<SubmitModal
62
            title="Grados"
62
			title="Grados"
63
            submitData={data}
63
			submitData={data}
64
            postLink={dataLink}
64
			postLink={dataLink}
65
            closeModal={closeModal}
65
			closeModal={closeModal}
66
        >
66
		>
67
            <div className="form-group">
67
			<div className="form-group">
68
                <TagsInput
68
				<TagsInput
69
                    suggestions={degreesOptionsArray}
69
					suggestions={degreesOptionsArray}
70
                    settedTags={userDegreesArray}
70
					settedTags={userDegreesArray}
71
                    onChange={handleTagsChange}
71
					onChange={handleTagsChange}
72
                />
72
				/>
73
                {errors.degrees && <p>{errors.degrees}</p>}
73
				{errors.degrees && <p>{errors.degrees}</p>}
Línea 74... Línea 74...
74
            </div>
74
			</div>