Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6336 stevensc 1
import React, { useEffect, useState } from 'react'
2
import { axios } from '../../../utils'
3
import GroupRemoveIcon from '@mui/icons-material/GroupRemove'
4
import IconButton from '@mui/material/IconButton'
5
 
6
import Spinner from '../../../shared/loading-spinner/Spinner'
7
 
8
const GroupMembers = ({ group }) => {
9
  const { url_get_contact_group_list } = group
10
  const [members, setMembers] = useState([])
11
  const [loading, setLoading] = useState(true)
12
 
13
  const getMembers = async () => {
14
    setLoading(true)
15
    const response = await axios.get(url_get_contact_group_list)
16
    const resData = response.data
17
    if (!resData.success) {
18
      return resData
19
    }
20
    setMembers(resData.data)
21
    setLoading(false)
22
  }
23
 
24
  const handleRemoveMember = async (remove_url) => {
25
    setLoading(true)
26
    const response = await axios.post(remove_url)
27
    const resData = response.data
28
    if (!resData.success) {
29
      return resData
30
    }
31
    await getMembers()
32
    setLoading(false)
33
  }
34
 
35
  useEffect(() => {
36
    getMembers()
37
  }, [])
38
 
39
  return (
40
    <div className="group-members">
41
      <ul>
42
        {members.map((member, i) => (
43
          <li key={i}>
44
            <GroupMembers.Item
45
              {...member}
46
              onClick={() => handleRemoveMember(member.url_remove_from_group)}
47
            />
48
          </li>
49
        ))}
50
      </ul>
51
      {loading && <Spinner />}
52
    </div>
53
  )
54
}
55
 
56
const Item = ({ image, name, onClick }) => {
57
  return (
58
    <div className="entity">
59
      <img src={image} alt="user_image" />
60
      <span>{name}</span>
61
      <IconButton onClick={onClick}>
62
        <GroupRemoveIcon />
63
      </IconButton>
64
    </div>
65
  )
66
}
67
 
68
GroupMembers.Item = Item
69
 
70
export default GroupMembers