Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
5475 stevensc 1
import React, { useState, useEffect } from 'react'
2
import ConfirmationBox from '../../../shared/confirmation-box/ConfirmationBox'
3
import parse from 'html-react-parser'
4
import EditIcon from '@mui/icons-material/Edit'
5
import DeleteIcon from '@mui/icons-material/Delete'
6
import IconButton from '@mui/material/IconButton'
7
 
8
const Experience = ({ experience, months = [], onDelete, onEdit }) => {
9
  const [isConfirmationBoxShow, setIsConfirmationBoxShow] = useState(false)
10
  const [monthOptions, setMonthOptions] = useState({})
11
 
12
  useEffect(() => {
13
    setMonthOptions(
14
      months.reduce((obj, item, i) => ({ ...obj, [i + 1]: item }), {})
15
    )
16
  }, [months, monthOptions])
17
 
18
  const toggleConfirmModal = () =>
19
    setIsConfirmationBoxShow(!isConfirmationBoxShow)
20
 
21
  return (
22
    <>
23
      <div className="experience-item">
24
        <div className="experience-item-header">
25
          <h3>{experience.company}</h3>
26
          <IconButton onClick={() => onEdit(experience.link_edit)}>
27
            <EditIcon className="cursor-pointer" />
28
          </IconButton>
29
          <IconButton onClick={toggleConfirmModal}>
30
            <DeleteIcon className="cursor-pointer" />
31
          </IconButton>
32
        </div>
33
        <p>{experience.title}</p>
34
        <p>
35
          {`${monthOptions[experience.from_month]} ${experience.from_year} - ${
36
            monthOptions[experience.to_month]
37
          } ${experience.is_current === 'y' ? 'Actual' : experience.to_year}`}
38
        </p>
39
        <p>{`${experience.industry.name || experience.industry} / ${
40
          experience.size
41
        }`}</p>
42
        <p>{experience.formatted_address}</p>
43
        {experience.description && parse(experience.description)}
44
      </div>
45
      <ConfirmationBox
46
        show={isConfirmationBoxShow}
47
        onClose={toggleConfirmModal}
48
        onAccept={() => onDelete(experience.link_delete)}
49
      />
50
    </>
51
  )
52
}
53
 
54
export default Experience