Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5499 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React, { useState, useEffect } from 'react'
import parse from 'html-react-parser'

import EditIcon from '@mui/icons-material/Edit'
import DeleteIcon from '@mui/icons-material/Delete'
import IconButton from '@mui/material/IconButton'
import ConfirmModal from '../../../shared/confirm-modal/ConfirmModal'

const Experience = ({ experience, months = [], onDelete, onEdit, isEdit }) => {
  const [isConfirmationBoxShow, setIsConfirmationBoxShow] = useState(false)
  const [monthOptions, setMonthOptions] = useState({})

  useEffect(() => {
    setMonthOptions(
      months.reduce((obj, item, i) => ({ ...obj, [i + 1]: item }), {})
    )
  }, [months, monthOptions])

  const toggleConfirmModal = () =>
    setIsConfirmationBoxShow(!isConfirmationBoxShow)

  return (
    <>
      <div className="experience-item">
        <div className="experience-item-header">
          <h3>{experience.company}</h3>
          {isEdit && (
            <div className="icon-buttons-group">
              <IconButton onClick={() => onEdit(experience.link_edit)}>
                <EditIcon />
              </IconButton>
              <IconButton onClick={toggleConfirmModal}>
                <DeleteIcon />
              </IconButton>
            </div>
          )}
        </div>
        <h4>{experience.title}</h4>
        <p>
          {`${monthOptions[experience.from_month]} ${experience.from_year} - ${
            experience.is_current === 'y'
              ? 'Actual'
              : `${monthOptions[experience.to_month]} ${experience.to_year}`
          }`}
        </p>
        <p>{`${experience.industry.name || experience.industry} / ${
          experience.size
        }`}</p>
        <p>{experience.formatted_address}</p>
        {experience.description && parse(experience.description)}
      </div>
      <ConfirmModal
        show={isConfirmationBoxShow}
        onClose={toggleConfirmModal}
        onAccept={() => onDelete(experience.link_delete)}
      />
    </>
  )
}

export default Experience