Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3694 | | Comparar con el anterior | Ultima modificación | Ver Log |

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