Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
4512 stevensc 1
/* eslint-disable react/prop-types */
2
import React, { useEffect, useState } from "react";
4513 stevensc 3
import { axios } from "../../../../../utils";
4512 stevensc 4
import { addNotification } from "../../../../../redux/notification/notification.actions";
5
import AddMemberModal from '../../../../../shared/helpers/group-members-helper/AddMemberModal'
6
import MembersModal from '../../../../../shared/helpers/group-members-helper/MembersModal'
7
import Avatar from "../../../../../shared/Avatar/Avatar";
8
 
9
const Members = ({ groupId, handleFirstLinkInvite }) => {
10
    const [members, setMembers] = useState([])
11
    const [addModalShow, setAddModalShow] = useState(false);
12
    const [showMembersModal, setShowMembersModal] = useState(false);
13
    const [linkInvite, setLinkInvite] = useState('')
14
 
15
    const load = () => {
16
        axios.get(`/helpers/group-members/${groupId}`)
17
            .then(({ data }) => {
18
                if (data.success) {
19
                    setMembers(data.data.items);
20
                    setLinkInvite(data.data.link_invite)
21
                    handleFirstLinkInvite(data.data.link_invite)
22
                }
23
            });
24
    }
25
 
26
    useEffect(() => load(), []);
27
 
28
    const handleAction = (url) => {
29
        const params = new FormData()
30
        axios.post(url, params)
31
            .then(({ data }) => {
32
                if (!data.success) {
33
                    return addNotification({ style: 'danger', msg: data.data })
34
                }
35
                addNotification({ style: 'success', msg: 'Accion realizada exitosamente' })
36
                load()
37
            })
38
            .catch(err => console.log('>>: err > ', err))
39
    }
40
 
41
    const closeAddModal = () => {
42
        setAddModalShow(false)
43
        load()
44
    }
45
 
46
    return (
47
        <>
48
            <AddMemberModal
49
                isShow={addModalShow}
50
                handleClose={closeAddModal}
51
                linkInvite={linkInvite}
52
            />
53
            <MembersModal
54
                isShow={showMembersModal}
55
                handleClose={() => setShowMembersModal(!showMembersModal)}
56
                members={members}
57
                handleAction={handleAction}
58
            />
59
            <div className='suggest__widget'>
60
                <div className="linked__widget-header">
61
                    <h3>Miembros</h3>
62
                </div>
63
                <div className="members-image__list">
64
                    {members.map((member) => {
65
                        return <Avatar
66
                            key={member.name}
67
                            imageUrl={member.image}
68
                            size='lg'
69
                            name={member.name}
70
                        />
71
                    })}
72
                </div>
73
            </div>
74
        </>
75
    );
76
};
77
 
78
export default Members;