Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3040 | Rev 3640 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1862 stevensc 1
import React, { useEffect, useState } from 'react'
1854 stevensc 2
import { useDispatch, useSelector } from 'react-redux'
3
import { IconButton } from '@mui/material'
4
import { Edit } from '@mui/icons-material'
5
 
3040 stevensc 6
import { updateSkills } from '@services/profile/profiles'
3047 stevensc 7
import { addNotification } from '@store/notification/notification.actions'
1854 stevensc 8
 
3047 stevensc 9
import Widget from '@components/UI/Widget'
10
import TagsList from '@components/UI/TagsList'
1854 stevensc 11
import SkillsModal from './SkillsModal'
12
 
13
const SkillsCard = ({
1866 stevensc 14
  skills: defaultSkills = [],
1854 stevensc 15
  uuid = '',
16
  edit = false
17
}) => {
18
  const [skills, setSkills] = useState([])
19
  const [showModal, setShowModal] = useState(false)
20
  const labels = useSelector(({ intl }) => intl.labels)
21
  const dispatch = useDispatch()
22
 
23
  const toggleModal = () => setShowModal(!showModal)
24
 
25
  const handleEditSkills = ({ skills }) => {
1979 stevensc 26
    updateSkills(uuid, skills)
3047 stevensc 27
      .then((skills) => {
28
        setSkills(skills)
1854 stevensc 29
        toggleModal()
30
      })
31
      .catch((error) => {
32
        dispatch(addNotification({ style: 'danger', msg: error.message }))
33
      })
34
  }
35
 
36
  useEffect(() => {
1862 stevensc 37
    setSkills(defaultSkills)
38
  }, [defaultSkills])
1854 stevensc 39
 
40
  return (
41
    <>
3047 stevensc 42
      <Widget>
43
        <Widget.Header
44
          title={labels.skills}
45
          renderAction={() => {
46
            if (!edit) return
47
            return (
48
              <IconButton onClick={toggleModal}>
49
                <Edit />
50
              </IconButton>
51
            )
52
          }}
53
        />
1854 stevensc 54
 
3047 stevensc 55
        <Widget.Body>
56
          <TagsList tags={skills} />
57
        </Widget.Body>
58
      </Widget>
59
 
1854 stevensc 60
      <SkillsModal
61
        show={showModal}
62
        onClose={toggleModal}
63
        onConfirm={handleEditSkills}
64
        skills={skills}
65
      />
66
    </>
67
  )
68
}
69
 
70
export default SkillsCard