AutorÃa | Ultima modificación | Ver Log |
import {axios} from "../../../utils";
import React, { useEffect, useState } from "react";
import Spinner from "../../../shared/loading-spinner/Spinner";
import styles from "./addMember.module.scss";
const AddMember = (props) => {
const {
url_add_user_to_group,
url_get_contacts_availables_for_group,
} = props.group;
const [loading, setLoading] = useState(false);
const [contacts, setContacts] = useState([]);
useEffect(() => {
getContacts();
}, []);
const getContacts = async () => {
setLoading(true);
const response = await axios.get(url_get_contacts_availables_for_group);
const resData = response.data;
if (!resData.success) {
return (resData);
}
setContacts(resData.data);
setLoading(false);
};
const handleAddMember = async (id) => {
setLoading(true);
const formData = new FormData();
formData.append("uid", id);
const response = await axios.post(url_add_user_to_group, formData);
const resData = response.data;
if (!resData.success) {
setLoading(false);
return (resData);
}
await getContacts();
setLoading(false);
};
return (
<div className={styles.addMember}>
{contacts.map(({ id, image, name }) => (
<li className={styles.entity} onClick={() => handleAddMember(id)}>
<img src={image} alt="user_image" />
<span className={styles.entityName}>{name}</span>
<div className={styles.entityOptions}>
<i className={`fa fa-plus-circle`}></i>
</div>
</li>
))}
{loading && (
<div className="spinner-container">
<Spinner />
</div>
)}
</div>
);
};
export default AddMember;