Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5865 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5473 stevensc 1
import React, { useState } from 'react'
2
import EmptySection from '../../../../../../shared/empty-section/EmptySection'
3
import EducationCard from '../../../../../view/templates/linkedin/components/cards/EducationCard'
4
import ExperienceCard from '../../../../../view/templates/linkedin/components/cards/ExperienceCard'
5
import ItemsList from '../../../../../view/templates/linkedin/components/cards/ItemsList'
6
import ProfileCard from '../../../../../view/templates/linkedin/components/ProfileCard'
7
import ProfileWidget from '../../../../../view/templates/linkedin/components/ProfileWidget'
8
import AptitudesModal from '../../../aptitudes/AptitudesModal'
9
import EducationModal from '../../../educations/education/EducationModal'
10
import ExperienceModal from '../../../experiences/experience/ExperienceModal'
11
import HobbiesModal from '../../../hobbies-and-interests/HobbiesModal'
12
import LanguagesModal from '../../../languages/LanguagesModal'
13
import LocationModal from '../../../location/LocationModal'
14
import SkillsModal from '../../../skills/SkillsModal'
15
 
16
const EditView = (userInfo) => {
17
  const {
18
    userExperiences,
19
    userEducations,
20
    userLanguages,
21
    userSkills,
22
    userAptitudes,
23
    userHobbiesAndInterests,
24
    companySizesOptions,
25
    industriesOptions,
26
    months,
27
    degreesOptions,
28
    skillsOptions,
29
    languagesOptions,
30
    aptitudesOptions,
31
    hobbiesAndInterestsOptions,
32
    formatted_address
33
  } = userInfo
34
 
35
  const [experiences, setExperiences] = useState(userExperiences)
36
  const [educations, setEducations] = useState(userEducations)
37
  const [languages, setLanguages] = useState(userLanguages)
38
  const [skills, setSkills] = useState(userSkills)
39
  const [aptitudes, setAptitudes] = useState(userAptitudes)
40
  const [hobbiesAndInterests, setHobbiesAndInterests] = useState(userHobbiesAndInterests)
41
  const [address, setAddress] = useState(formatted_address)
42
 
43
  const [modalShow, setModalShow] = useState(null)
44
  const [settedDescription, setSettedDescription] = useState('')
45
  const [postUrl, setPostUrl] = useState('')
46
  const [isEdit, setIsEdit] = useState(false)
47
 
48
  const handleEdit = (modalName, url, description) => {
49
    setModalShow(modalName)
50
    setPostUrl(url)
51
    setSettedDescription(description)
52
  }
53
 
54
  const handleAdd = (modalName, url) => {
55
    setModalShow(modalName)
56
    setPostUrl(url)
57
  }
58
 
59
  const closeModal = () => {
60
    setSettedDescription('')
61
    setPostUrl('')
62
    setIsEdit(false)
63
    setModalShow(null)
64
  }
65
 
66
  const renderModal = {
67
    Experiencia: <ExperienceModal
68
            companySizesOptions={companySizesOptions}
69
            industriesOptions={industriesOptions}
70
            months={months}
71
            setUserExperiences={(newExperiences) => setExperiences(newExperiences)}
72
            show={modalShow === 'Experiencia'}
73
            postUrl={postUrl}
74
            closeModal={closeModal}
75
            settedDescription={settedDescription}
76
        />,
77
    Educación: <EducationModal
78
            closeModal={closeModal}
79
            postUrl={postUrl}
80
            setEducations={(newEducations) => setEducations(newEducations)}
81
            show={modalShow === 'Educación'}
82
            settedDescription={settedDescription}
83
            degreesOptions={degreesOptions}
84
        />,
85
    Habilidades: <SkillsModal
86
            closeModal={closeModal}
87
            setSkills={(newSkills) => setSkills(newSkills)}
88
            show={modalShow === 'Habilidades'}
89
            skillsOptions={skillsOptions}
90
            userIdEncrypted={userInfo.userProfileIdEncrypted}
91
            userSkillsArray={skills}
92
        />,
93
    Idiomas: <LanguagesModal
94
            show={modalShow === 'Idiomas'}
95
            closeModal={closeModal}
96
            userIdEncrypted={userInfo.userProfileIdEncrypted}
97
            languagesOptions={languagesOptions}
98
            userLanguages={languages}
99
            setLanguages={(newLanguages) => setLanguages(newLanguages)}
100
        />,
101
    Aptitudes: <AptitudesModal
102
            show={modalShow === 'Aptitudes'}
103
            closeModal={closeModal}
104
            userIdEncrypted={userInfo.userProfileIdEncrypted}
105
            aptitudesOptions={aptitudesOptions}
106
            userAptitudes={aptitudes}
107
            setAptitudes={(newAptitudes) => setAptitudes(newAptitudes)}
108
        />,
109
    'Hobbies e Intereses': <HobbiesModal
110
            show={modalShow === 'Hobbies e Intereses'}
111
            closeModal={closeModal}
112
            userIdEncrypted={userInfo.userProfileIdEncrypted}
113
            hobbiesAndInterestsOptions={hobbiesAndInterestsOptions}
114
            userHobbiesAndInterests={hobbiesAndInterests}
115
            setUserHobbiesAndInterests={(newHobbiesAndInterests) => setHobbiesAndInterests(newHobbiesAndInterests)}
116
        />,
117
    Ubicación: <LocationModal
118
            isModalOpen={modalShow === 'Ubicación'}
119
            closeModal={() => setModalShow(null)}
120
            setSettedAddress={(newAddress) => setAddress(newAddress)}
121
            userIdEncrypted={userInfo.userProfileIdEncrypted}
122
        />
123
  }
124
 
125
  return (
126
        <main className='w-100'>
127
            <div className='container'>
128
                <div className="main d-flex flex-column" style={{ gap: '.5rem' }}>
129
                    <ProfileCard {...{ ...userInfo, formatted_address: address }} />
130
                    <ProfileWidget
131
                        title='Experiencia'
132
                        onEdit={() => setIsEdit(!isEdit)}
133
                        onAdd={handleAdd}
134
                        addUrl={`/profile/my-profiles/experience/${userInfo.userProfileIdEncrypted}/operation/add`}
135
                    >
136
                        {experiences.map((experience, index) => {
137
                          return <ExperienceCard
138
                                key={index}
139
                                experience={experience}
140
                                months={userInfo.months}
141
                                isEdit={isEdit}
142
                                onEdit={handleEdit}
143
                                setExperiences={(newExperiences) => setExperiences(newExperiences)}
144
                            />
145
                        })}
146
                    </ProfileWidget>
147
                    <ProfileWidget
148
                        title='Educación'
149
                        onEdit={() => setIsEdit(!isEdit)}
150
                        onAdd={handleAdd}
151
                        addUrl={`/profile/my-profiles/education/${userInfo.userProfileIdEncrypted}/operation/add`}
152
                    >
153
                        {educations.map((education, index) => {
154
                          return <EducationCard
155
                                key={index}
156
                                education={education}
157
                                isEdit={isEdit}
158
                                onEdit={handleEdit}
159
                                setEducations={(newEducations) => setEducations(newEducations)}
160
                            />
161
                        })}
162
                    </ProfileWidget>
163
                    <ProfileWidget title='Ubicación' onEdit={() => setModalShow('Ubicación')} justEdit>
164
                        <div className='card__items'>
165
                            <p>{address}</p>
166
                        </div>
167
                    </ProfileWidget>
168
                    <ProfileWidget title='Idiomas' onEdit={() => setModalShow('Idiomas')} justEdit>
169
                        {!languages.length
170
                          ? <EmptySection align='left' message="Sin información" />
171
                          : <ItemsList value={languages} />
172
                        }
173
                    </ProfileWidget>
174
                    <ProfileWidget title='Habilidades' onEdit={() => setModalShow('Habilidades')} justEdit>
175
                        {!skills.length
176
                          ? <EmptySection align='left' message="Sin información" />
177
                          : <ItemsList value={skills} />
178
                        }
179
                    </ProfileWidget>
180
                    <ProfileWidget title='Aptitudes' onEdit={() => setModalShow('Aptitudes')} justEdit>
181
                        {!aptitudes.length
182
                          ? <EmptySection align='left' message="Sin información" />
183
                          : <ItemsList value={aptitudes} />
184
                        }
185
                    </ProfileWidget>
186
                    <ProfileWidget title='Pasatiempos e intereses' onEdit={() => setModalShow('Hobbies e Intereses')} justEdit>
187
                        {!hobbiesAndInterests.length
188
                          ? <EmptySection align='left' message="Sin información" />
189
                          : <ItemsList value={hobbiesAndInterests} />
190
                        }
191
                    </ProfileWidget>
192
                    {renderModal[modalShow]}
193
                </div>
194
            </div>
195
        </main >
196
  )
197
}
198
 
199
export default EditView