Proyectos de Subversion LeadersLinked - Backend

Rev

| Ultima modificación | Ver Log |

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