Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| Ultima modificación | Ver Log |

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