Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
6848 stevensc 1
import React, { useEffect, useState } from 'react'
2
import { Link } from 'react-router-dom'
3
import { getData } from '../../helpers/fetchHelpers';
4
import EditItem from '../components/EditItem';
7138 stevensc 5
import EmploymentTypeModal from '../components/Modals/EmploymentTypeModal';
7771 stevensc 6
import LanguageModal from '../components/Modals/LanguageModal';
7124 stevensc 7
import LastAplicationDayModal from '../components/Modals/LastAplicationDayModal';
7123 stevensc 8
import LocationModal from '../components/Modals/LocationModal';
7120 stevensc 9
import OverviewModal from '../components/Modals/OverviewModal';
8372 stevensc 10
import SkillsModal from '../components/Modals/SkillsModal';
7066 stevensc 11
import StatusModal from '../components/Modals/StatusModal';
7116 stevensc 12
import TitleModal from '../components/Modals/TitleModal';
6628 stevensc 13
 
7770 stevensc 14
const JobsEditView = ({ linkEdit, googleApi }) => {
6848 stevensc 15
 
7066 stevensc 16
    const [modalToShow, setModalToShow] = useState(null);
6848 stevensc 17
    const [itemsData, setItemsData] = useState({
7106 stevensc 18
        title: '',
19
        status: '',
6848 stevensc 20
        description: '',
21
        location: '',
22
        employment_type: '',
23
        last_date_of_application: '',
24
        job_category: '',
25
        experience: '',
26
        salary: '',
27
        degrees: [],
28
        languages: [],
29
        skills: []
30
    });
7066 stevensc 31
    const [itemsRoutes, setItemsRoutes] = useState({
32
        route_degrees: "",
33
        route_employment_type: "",
34
        route_experience: "",
35
        route_extended: "",
36
        route_job_category: "",
37
        route_languages: "",
38
        route_last_date_of_application: "",
39
        route_location: "",
40
        route_salary: "",
41
        route_skills: "",
42
        route_status: "",
43
        route_title: ""
44
    });
6848 stevensc 45
 
7066 stevensc 46
    const closeModal = () => setModalToShow(null)
47
 
6848 stevensc 48
    useEffect(() => {
49
        getData(linkEdit)
50
            .then(results => {
51
                setItemsData({
7100 stevensc 52
                    ...itemsData,
7105 stevensc 53
                    title: results.title,
54
                    status: results.status,
6848 stevensc 55
                    description: results.description,
56
                    location: results.location,
57
                    employment_type: results.employment_type,
58
                    last_date_of_application: results.last_date_of_application,
59
                    job_category: results.job_category,
60
                    experience: results.experience,
61
                    salary: results.salary,
62
                    degrees: results.degrees,
63
                    languages: results.languages,
64
                    skills: results.skills
65
                })
7066 stevensc 66
                setItemsRoutes({
67
                    route_degrees: results.route_degrees,
68
                    route_employment_type: results.route_employment_type,
69
                    route_experience: results.route_experience,
70
                    route_extended: results.route_extended,
71
                    route_job_category: results.route_job_category,
72
                    route_languages: results.route_languages,
73
                    route_last_date_of_application: results.route_last_date_of_application,
74
                    route_location: results.route_location,
75
                    route_salary: results.route_salary,
76
                    route_skills: results.route_skills,
77
                    route_status: results.route_status,
78
                    route_title: results.route_title
79
                })
6848 stevensc 80
            })
7120 stevensc 81
    }, [modalToShow]);
6848 stevensc 82
 
7066 stevensc 83
    const ModalOptions = {
7107 stevensc 84
        "Estatus": <StatusModal closeModal={closeModal} modalData={itemsData.status} dataLink={itemsRoutes.route_status} />,
7116 stevensc 85
        "Título": <TitleModal closeModal={closeModal} modalData={itemsData.title} dataLink={itemsRoutes.route_title} />,
7120 stevensc 86
        "Visión general": <OverviewModal closeModal={closeModal} modalData={itemsData.description} dataLink={itemsRoutes.route_extended} />,
7124 stevensc 87
        "Último día de aplicación": <LastAplicationDayModal closeModal={closeModal} modalData={itemsData.last_date_of_application} dataLink={itemsRoutes.route_last_date_of_application} />,
7768 stevensc 88
        "Tipo de empleo": <EmploymentTypeModal closeModal={closeModal} modalData={itemsData.employment_type} dataLink={itemsRoutes.route_employment_type} />,
7770 stevensc 89
        "Ubicación": <LocationModal closeModal={closeModal} modalData={itemsData.location} dataLink={itemsRoutes.route_location} googleApiKey={googleApi} />,
8372 stevensc 90
        "Idiomas": <LanguageModal closeModal={closeModal} dataLink={itemsRoutes.route_languages} />,
7066 stevensc 91
        "Experiencia": "",
92
        "Salario": "",
93
        "Categoría": "",
8372 stevensc 94
        "Habilidades": <SkillsModal closeModal={closeModal} dataLink={itemsRoutes.route_skills} />,
7066 stevensc 95
        "Grados": "",
96
    }
97
 
6628 stevensc 98
    return (
99
        <>
100
            <section className="content-header">
101
                <div className="container-fluid">
102
                    <div className="row mb-2">
103
                        <div className="col-sm-12">
6848 stevensc 104
                            <Link to='/jobs' className='text-decoration-none text-body'>
105
                                <h1>
106
                                    <i className='fa fa-angle-left fw-bold mr-2' />
107
                                    Editar empleo
108
                                </h1>
109
                            </Link>
6628 stevensc 110
                        </div>
111
                    </div>
112
                </div>
113
            </section>
6848 stevensc 114
            <section class="content">
115
                <div class="container-fluid">
116
                    <div class="row">
117
                        <div class="col-lg-3">
118
                        </div>
119
                        <div class="col-lg-6">
120
                            <div class="main-ws-sec">
7066 stevensc 121
                                <EditItem title='Estatus' data={itemsData.status} showModal={setModalToShow} />
122
                                <EditItem title='Título' data={itemsData.title} showModal={setModalToShow} />
123
                                <EditItem title='Visión general' data={itemsData.description} showModal={setModalToShow} />
124
                                <EditItem title='Último día de aplicación' data={itemsData.last_date_of_application} showModal={setModalToShow} />
125
                                <EditItem title='Tipo de empleo' data={itemsData.employment_type} showModal={setModalToShow} />
126
                                <EditItem title='Ubicación' data={itemsData.location} showModal={setModalToShow} />
127
                                <EditItem title='Experiencia' data={itemsData.experience} showModal={setModalToShow} />
128
                                <EditItem title='Salario' data={itemsData.salary} showModal={setModalToShow} />
129
                                <EditItem title='Categoría' data={itemsData.job_category} showModal={setModalToShow} />
130
                                <EditItem title='Habilidades' data={itemsData.skills} showModal={setModalToShow} />
131
                                <EditItem title='Idiomas' data={itemsData.languages} showModal={setModalToShow} />
132
                                <EditItem title='Grados' data={itemsData.degrees} showModal={setModalToShow} />
6848 stevensc 133
                            </div>
7086 stevensc 134
                            {
135
                                ModalOptions[modalToShow]
136
                            }
6848 stevensc 137
                        </div>
138
                        <div class="col-lg-3">
139
                        </div>
140
                    </div>
141
                </div>
142
            </section>
6628 stevensc 143
        </>
144
    )
145
}
146
 
147
export default JobsEditView