Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5803 stevensc 1
import React, { useEffect, useState } from 'react'
2
import { axios } from '../../../../utils'
3
import { useDispatch } from 'react-redux'
4
import { addNotification } from '../../../../redux/notification/notification.actions'
5
 
6
import AddMemberModal from '../../../../shared/helpers/group-members-helper/AddMemberModal'
7
import MembersModal from '../../../../shared/helpers/group-members-helper/MembersModal'
8
import MemberTemplate from '../../../../shared/helpers/group-members-helper/MemberTemplate'
9
 
10
const GroupMembers = ({ groupId }) => {
11
  const [members, setMembers] = useState([])
12
  const [addModalShow, setAddModalShow] = useState(false)
13
  const [showMembersModal, setShowMembersModal] = useState(false)
14
  const [linkInvite, setLinkInvite] = useState('')
15
  const dispatch = useDispatch()
16
 
17
  const load = () => {
18
    axios.get(`/helpers/group-members/${groupId}`).then(({ data }) => {
19
      if (data.success) {
20
        setMembers(data.data.items)
21
        setLinkInvite(data.data.link_invite)
22
      }
23
    })
24
  }
25
 
26
  const handleAction = (url) => {
27
    const params = new FormData()
28
    axios
29
      .post(url, params)
30
      .then(({ data }) => {
31
        if (!data.success) {
32
          dispatch(addNotification({ style: 'danger', msg: data.data }))
33
          return
34
        }
35
 
36
        dispatch(
37
          addNotification({
38
            style: 'success',
39
            msg: 'Accion realizada exitosamente',
40
          })
41
        )
42
      })
43
      .catch((err) => console.log('>>: err > ', err))
44
      .finally(() => load())
45
  }
46
 
47
  const closeAddModal = () => {
48
    setAddModalShow(false)
49
    load()
50
  }
51
 
52
  useEffect(() => load(), [])
53
 
54
  return (
55
    <>
56
      <AddMemberModal
57
        isShow={addModalShow}
58
        handleClose={closeAddModal}
59
        linkInvite={linkInvite}
60
      />
61
      <MembersModal
62
        isShow={showMembersModal}
63
        handleClose={() => setShowMembersModal(!showMembersModal)}
64
        members={members}
65
        handleAction={handleAction}
66
      />
67
      <div className="members-container">
68
        {linkInvite && (
69
          <button
70
            onClick={() => setAddModalShow(!addModalShow)}
71
            className="btn btn-primary btn-sm w-100"
72
          >
73
            Añadir miembros
74
          </button>
75
        )}
76
        <button
77
          onClick={() => setShowMembersModal(!showMembersModal)}
78
          className="btn btn-primary btn-sm w-100 d-md-none"
79
        >
80
          Ver miembros
81
        </button>
82
        <div className="suggests_widget">
83
          <div className="suggests_widget-header">
84
            <h3>Miembros</h3>
85
          </div>
86
          {members.map((member) => (
87
            <MemberTemplate
88
              key={member.id}
89
              member={member}
90
              handleAction={handleAction}
91
            />
92
          ))}
93
        </div>
94
      </div>
95
    </>
96
  )
97
}
98
 
99
export default GroupMembers