Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5567 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

/* eslint-disable react/prop-types */
import React, { useEffect, useState } from 'react'
import { useDispatch } from 'react-redux'
import { setIntlLabels } from '../../../../redux/intl/intl.action'

import Cover from '../../../../shared/cover/Cover'
import Overview from '../../../components/overview/Overview'
import Experiences from '../../../components/experiences/Experiences'
import Educations from '../../../components/educations/Educations'
import Location from '../../../components/location/Location'
import Languages from '../../../components/languages/Languages'
import Skills from '../../../components/skills/Skills'
import Aptitudes from '../../../components/aptitudes/Aptitudes'
import HobbiesAndInterests from '../../../components/hobbies-and-interests/HobbiesAndInterests'
import ProfileInfo from '../../../components/ProfileInfo'

const Edit = ({ profile, labels }) => {
  const [languages, setLanguages] = useState([])
  const [skills, setSkills] = useState([])
  const [aptitudes, setAptitudes] = useState([])
  const [hobbiesAndInterests, setHobbiesAndInterests] = useState([])
  const dispatch = useDispatch()

  const {
    profileId,
    cover,
    overview,
    formatted_address,
    experiences,
    educations,
    months,
    languages: userLanguages,
    skills: userSkills,
    aptitudes: userAptitudes,
    hobbiesAndInterests: userHobbiesAndInterests,
    sizes,
    options,
  } = profile

  useEffect(() => {
    dispatch(setIntlLabels(labels))
  }, [])

  useEffect(() => {
    const adapters = [
      {
        value: userSkills,
        setter: setSkills,
      },
      {
        value: userLanguages,
        setter: setLanguages,
      },
      {
        value: userAptitudes,
        setter: setAptitudes,
      },
      {
        value: userHobbiesAndInterests,
        setter: setHobbiesAndInterests,
      },
    ]

    adapters.map((adapter) => {
      const value = Object.entries(adapter.value).map(([key, value]) => ({
        value: key,
        name: value,
      }))
      adapter.setter(value)
    })
  }, [])

  return (
    <>
      <Cover
        isEdit
        type="user"
        cover={cover}
        profileId={profileId}
        id={profile.uuid}
        size={sizes.cover}
      />
      <main className="main-section-data container px-0">
        <aside className="main-left-sidebar">
          <ProfileInfo
            isEdit
            id={profile.uuid}
            facebook={profile.facebook}
            twitter={profile.twitter}
            instagram={profile.instagram}
            follower={profile.follower}
            following={profile.following}
            fullName={profile.fullName}
            image={profile.image}
          />
        </aside>
        <div className="feed-section">
          <h2>{profile.fullName}</h2>
          <Overview isEdit overview={overview} userId={profile.uuid} />
          <Experiences
            isEdit
            experiences={experiences}
            userId={profile.uuid}
            companySizesOptions={options.companySizes}
            industriesOptions={options.industries}
            months={months}
          />
          <Educations
            isEdit
            educations={educations}
            degreesOptions={options.degrees}
            userId={profile.uuid}
          />
          <Location isEdit address={formatted_address} userId={profile.uuid} />
          <Languages
            isEdit
            languages={languages}
            languagesOptions={options.languages}
            userId={profile.uuid}
          />
          <Skills
            isEdit
            skills={skills}
            skillsOptions={options.skills}
            userId={profile.uuid}
          />
          <Aptitudes
            isEdit
            aptitudes={aptitudes}
            aptitudesOptions={options.aptitudes}
            userId={profile.uuid}
          />
          <HobbiesAndInterests
            isEdit
            hobbiesAndInterest={hobbiesAndInterests}
            hobbiesAndInterestsOptions={options.hobbiesAndInterests}
            userId={profile.uuid}
          />
        </div>
        <aside className="right-sidebar"></aside>
      </main>
    </>
  )
}

export default Edit