Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 7263 | Ir a la última revisión | | Ultima modificación | Ver Log |

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