Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3881 | Autoría | Ultima modificación | Ver Log |

/* eslint-disable react/prop-types */
import React from "react";
import { useEffect, useState } from "react";
import { addNotification } from "../../../redux/notification/notification.actions";
import { axios } from "../../../utils";
import AddMemberModal from "./AddMemberModal";
import MembersModal from "./MembersModal";
import MemberTemplate from "./MemberTemplate";

const GroupMembersHelper = ({ groupId, handleFirstLinkInvite }) => {

  const [members, setMembers] = useState([])
  const [addModalShow, setAddModalShow] = useState(false);
  const [showMembersModal, setShowMembersModal] = useState(false);
  const [linkInvite, setLinkInvite] = useState('')

  const load = () => {
    axios.get(`/helpers/group-members/${groupId}`)
      .then(({ data }) => {
        if (data.success) {
          setMembers(data.data.items);
          setLinkInvite(data.data.link_invite)
          handleFirstLinkInvite(data.data.link_invite)
        }
      });
  }

  useEffect(() => load(), []);

  const handleAction = (url) => {
    const params = new FormData()
    axios.post(url, params)
      .then(({ data }) => {
        if (!data.success) {
          return addNotification({ style: 'danger', msg: data.data })
        }
        addNotification({ style: 'success', msg: 'Accion realizada exitosamente' })
        load()
      })
      .catch(err => console.log('>>: err > ', err))
  }

  const closeAddModal = () => {
    setAddModalShow(false)
    load()
  }

  return (
    <React.Fragment>
      <AddMemberModal
        isShow={addModalShow}
        handleClose={closeAddModal}
        linkInvite={linkInvite}
      />
      <MembersModal
        isShow={showMembersModal}
        handleClose={() => setShowMembersModal(!showMembersModal)}
        members={members}
        handleAction={handleAction}
      />
      <div className='members-container'>
        {!!linkInvite &&
          <button
            onClick={() => setAddModalShow(!addModalShow)}
            className="btn btn-primary btn-sm w-100"
          >
            Añadir miembros
          </button>
        }
        <button
          onClick={() => setShowMembersModal(!showMembersModal)}
          className="btn btn-primary btn-sm w-100 d-md-none"
        >
          Ver miembros
        </button>
        <div className="d-none d-md-block">
          <div className="sd-title">
            <h3>Miembros</h3>
          </div>
          {
            members.map((member) =>
              <MemberTemplate
                key={member.id}
                member={member}
                handleAction={handleAction}
              />
            )
          }
        </div>
      </div>
    </React.Fragment>
  );
};

export default GroupMembersHelper;