Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3892 | Rev 3895 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3506 stevensc 1
/* eslint-disable react/prop-types */
1 www 2
import React from "react";
3
import { useEffect, useState } from "react";
2443 stevensc 4
import { axios } from "../../../utils";
1 www 5
 
3894 stevensc 6
const CompanyFollowers = ({ companyId }) => {
1 www 7
 
8
  const [companyFollowers, setCompanyFollowers] = useState([]);
3894 stevensc 9
  const [showFollowersModal, setShowFollowersModal] = useState(false);
1696 steven 10
  const [lookMore, setLookMore] = useState(false);
3506 stevensc 11
 
1 www 12
  useEffect(() => {
3506 stevensc 13
    axios.get(`/helpers/company-follower/${companyId}`)
14
      .then(({ data }) => {
15
        if (data.success) setCompanyFollowers(data.data)
16
      })
1 www 17
  }, []);
1696 steven 18
 
19
  const getData = () => {
20
    let infoFollows = [...companyFollowers]
2443 stevensc 21
    if (!lookMore) {
2943 stevensc 22
      infoFollows = infoFollows.slice(0, 3);
1696 steven 23
    }
24
    return infoFollows
25
  }
3892 stevensc 26
 
1 www 27
  return (
3894 stevensc 28
    <>
29
      <div className="peopleYouMayKnow">
30
        <div className="sd-title d-flex align-items-center justify-content-between">
31
          <h3>Seguidores:</h3>
32
          <a href="#"
33
            onClick={(e) => {
34
              e.preventDefault()
35
              setLookMore(!lookMore)
36
            }}
37
          >
38
            {lookMore ? 'Ver menos' : 'Ver mas'}
39
          </a>
40
        </div>
41
        <div className="suggest-list">
42
          {companyFollowers.length
43
            ? getData().map((follower) =>
44
              <CompanyFollowers.Template
45
                key={follower.id}
46
                follower={follower}
47
              />
48
            )
49
            : <div className="view-more">Sin seguidores</div>
50
          }
51
        </div>
52
      </div>
53
      <button
54
        onClick={() => setShowFollowersModal(!showFollowersModal)}
55
        className="btn btn-primary btn-sm w-100 d-md-none"
56
      >
57
        Ver seguidores
58
      </button>
59
      <CompanyFollowers.Modal
60
        isShow={showFollowersModal}
61
        companyFollowers={() => getData()}
62
        handleClose={() => setShowFollowersModal(false)}
63
      />
64
    </>
65
  );
66
};
67
 
68
 
69
const Template = ({ follower }) => {
70
  const { name, image, profile } = follower
71
 
72
  return (
73
    <div className='user'>
74
      <div className="w-100 d-flex align-items-center" style={{ gap: '.5rem' }}>
75
        <a href={profile} target="_blank" rel="noreferrer">
76
          <img src={image} alt={`${name} profile image`} />
77
        </a>
78
        <h4>{name}</h4>
79
      </div>
80
      <div className="w-100 d-flex align-items-center justify-content-start" style={{ gap: '.5rem' }}>
81
        <a
82
          href={profile}
83
          className="btn btn-primary"
84
          target='_blank'
85
          rel="noreferrer"
2945 stevensc 86
        >
3894 stevensc 87
          Ver perfil
2945 stevensc 88
        </a>
2443 stevensc 89
      </div>
3894 stevensc 90
    </div>
91
  )
92
}
93
 
94
const Modal = ({
95
  isShow = false,
96
  handleClose = function () { },
97
  companyFollowers = []
98
}) => {
99
  return (
100
    <Modal show={isShow} onHide={handleClose}>
101
      <Modal.Header closeButton>
102
        <h3>Seguidores</h3>
103
      </Modal.Header>
104
      <Modal.Body>
2443 stevensc 105
        {companyFollowers.length
3894 stevensc 106
          ? companyFollowers.map((follower) =>
107
            <CompanyFollowers.Template
108
              key={follower.id}
109
              follower={follower}
110
            />
111
          )
2443 stevensc 112
          : <div className="view-more">Sin seguidores</div>
113
        }
3894 stevensc 114
      </Modal.Body>
115
    </Modal>
116
  )
117
}
1 www 118
 
3894 stevensc 119
CompanyFollowers.Template = Template
120
CompanyFollowers.Modal = Modal
121
 
122
export default CompanyFollowers;