Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
5473 stevensc 1
/* eslint-disable react/prop-types */
2
import React, { useEffect, useState } from 'react'
3
import OverviewModal from './OverviewModal'
4
import EmptySection from '../../../shared/empty-section/EmptySection'
5
import { useSelector } from 'react-redux'
6
 
7
const Overview = ({ overview, userId, isEdit }) => {
8
  const [isModalOpen, setIsModalOpen] = useState(false)
9
  const [settedOverview, setSettedOverview] = useState(overview)
10
 
11
  const labels = useSelector((state) => state.labels)
12
 
13
  const toggleModal = () => setIsModalOpen(true)
14
 
15
  function sanitize(str) {
16
    const map = {
17
      '&': '&',
18
      '<': '&lt;',
19
      '>': '&gt;',
20
      '"': '&quot;',
21
      "'": '&#039;',
22
    }
23
    return str.replace(/[&<>"']/g, (m) => map[m])
24
  }
25
 
26
  useEffect(() => {
27
    setSettedOverview(overview)
28
  }, [overview])
29
 
30
  return (
31
    <>
32
      <div className="user-profile-extended-ov">
33
        <h3 style={{ display: 'flex' }}>
34
          Visión general
35
          {isEdit && (
36
            <button className="btn-extended-edit" onClick={toggleModal}>
37
              <i className="fa fa-pencil" />
38
            </button>
39
          )}
40
        </h3>
41
        {overview ? (
42
          <span id="overview-description">{sanitize(overview)}</span>
43
        ) : (
44
          <EmptySection align="left" message={labels.EMPTY} />
45
        )}
46
      </div>
47
      <OverviewModal
48
        isOpen={isModalOpen}
49
        overview={settedOverview}
50
        userIdEncrypted={userId}
51
        closeModal={toggleModal}
52
        setOverview={setSettedOverview}
53
      />
54
    </>
55
  )
56
}
57
 
58
export default Overview