Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5476 | Rev 5478 | Ir a la última revisión | | Comparar con el anterior | 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
 
5476 stevensc 8
const Experience = ({ experience, months = [], onDelete, onEdit, isEdit }) => {
5475 stevensc 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">
5477 stevensc 25
          <h4>{experience.company}</h4>
5476 stevensc 26
          {isEdit && (
27
            <div className="d-inline-flex align-items-center gap-3">
28
              <IconButton onClick={() => onEdit(experience.link_edit)}>
29
                <EditIcon className="cursor-pointer" />
30
              </IconButton>
31
              <IconButton onClick={toggleConfirmModal}>
32
                <DeleteIcon className="cursor-pointer" />
33
              </IconButton>
34
            </div>
35
          )}
5475 stevensc 36
        </div>
37
        <p>{experience.title}</p>
38
        <p>
39
          {`${monthOptions[experience.from_month]} ${experience.from_year} - ${
40
            monthOptions[experience.to_month]
41
          } ${experience.is_current === 'y' ? 'Actual' : experience.to_year}`}
42
        </p>
43
        <p>{`${experience.industry.name || experience.industry} / ${
44
          experience.size
45
        }`}</p>
46
        <p>{experience.formatted_address}</p>
47
        {experience.description && parse(experience.description)}
48
      </div>
49
      <ConfirmationBox
50
        show={isConfirmationBoxShow}
51
        onClose={toggleConfirmModal}
52
        onAccept={() => onDelete(experience.link_delete)}
53
      />
54
    </>
55
  )
56
}
57
 
58
export default Experience