Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3894 | Rev 3896 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

/* eslint-disable react/prop-types */
import React from "react";
import { useEffect, useState } from "react";
import { axios } from "../../../utils";

const CompanyFollowers = ({ companyId }) => {

  const [companyFollowers, setCompanyFollowers] = useState([]);
  const [showFollowersModal, setShowFollowersModal] = useState(false);
  const [lookMore, setLookMore] = useState(false);

  useEffect(() => {
    axios.get(`/helpers/company-follower/${companyId}`)
      .then(({ data }) => {
        if (data.success) setCompanyFollowers(data.data)
      })
  }, []);

  const getData = () => {
    let infoFollows = [...companyFollowers]
    if (!lookMore) {
      infoFollows = infoFollows.slice(0, 3);
    }
    return infoFollows
  }

  return (
    <>
      <div className="peopleYouMayKnow">
        <div className="sd-title d-flex align-items-center justify-content-between">
          <h3>Seguidores:</h3>
          <span onClick={() => setLookMore(!lookMore)}>
            {lookMore ? 'Ver menos' : 'Ver mas'}
          </span>
        </div>
        <div className="suggest-list">
          {companyFollowers.length
            ? getData().map((follower) =>
              <CompanyFollowers.Template
                key={follower.id}
                follower={follower}
              />
            )
            : <div className="view-more">Sin seguidores</div>
          }
        </div>
      </div>
      <button
        onClick={() => setShowFollowersModal(!showFollowersModal)}
        className="btn btn-primary btn-sm w-100 d-md-none"
      >
        Ver seguidores
      </button>
      <CompanyFollowers.Modal
        isShow={showFollowersModal}
        companyFollowers={() => getData()}
        handleClose={() => setShowFollowersModal(false)}
      />
    </>
  );
};


const Template = ({ follower }) => {
  const { name, image, profile } = follower

  return (
    <div className='user'>
      <div className="w-100 d-flex align-items-center" style={{ gap: '.5rem' }}>
        <a href={profile} target="_blank" rel="noreferrer">
          <img src={image} alt={`${name} profile image`} />
        </a>
        <h4>{name}</h4>
      </div>
      <div className="w-100 d-flex align-items-center justify-content-start" style={{ gap: '.5rem' }}>
        <a
          href={profile}
          className="btn btn-primary"
          target='_blank'
          rel="noreferrer"
        >
          Ver perfil
        </a>
      </div>
    </div>
  )
}

const Modal = ({
  isShow = false,
  handleClose = function () { },
  companyFollowers = []
}) => {
  return (
    <Modal show={isShow} onHide={handleClose}>
      <Modal.Header closeButton>
        <h3>Seguidores</h3>
      </Modal.Header>
      <Modal.Body>
        {companyFollowers.length
          ? companyFollowers.map((follower) =>
            <CompanyFollowers.Template
              key={follower.id}
              follower={follower}
            />
          )
          : <div className="view-more">Sin seguidores</div>
        }
      </Modal.Body>
    </Modal>
  )
}

CompanyFollowers.Template = Template
CompanyFollowers.Modal = Modal

export default CompanyFollowers;