Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
4313 stevensc 1
/* eslint-disable react/prop-types */
4316 stevensc 2
import React, { useEffect, useState } from 'react'
3
import axios from '../../../../utils/axios'
4313 stevensc 4
import ExpandMoreIcon from '@mui/icons-material/ExpandMore'
5
import GroupIcon from '@mui/icons-material/Group'
4314 stevensc 6
import EmptySection from '../../../../shared/empty-section/EmptySection'
4313 stevensc 7
 
4316 stevensc 8
const HelpersContainer = () => {
4313 stevensc 9
 
10
  return (
11
    <div className='sidebar__bottom'>
4317 stevensc 12
      <HelpersContainer.Item url="/helpers/my-groups" title="Mis Grupos" />
13
      <HelpersContainer.Item url="/helpers/groups-suggestion" title="Grupos" />
4313 stevensc 14
    </div>
15
  )
16
}
17
 
18
const Item = ({ url = '/helpers/my-groups', title = 'Mis grupos' }) => {
19
 
20
  const [widgetData, setWidgetData] = useState([]);
4317 stevensc 21
  const [displayMenu, setDisplayMenu] = useState(false);
4313 stevensc 22
  const [lookMore, setLookMore] = useState(false);
23
 
24
  const getData = () => {
25
    axios.get(url)
26
      .then(({ data: response }) => {
27
        const { success, data } = response
28
        if (success) {
4317 stevensc 29
          setWidgetData(data.sort((a, b) => a.priority - b.priority).reverse());
4313 stevensc 30
        }
31
      });
32
  }
33
 
34
  useEffect(() => {
35
    getData()
36
  }, []);
37
 
4317 stevensc 38
  const dataSlice = () => {
39
    let infoFollows = [...widgetData]
40
    if (!lookMore) {
41
      infoFollows = infoFollows.slice(0, 1)
42
    }
43
    return infoFollows
44
  }
45
 
4313 stevensc 46
  return (
47
    <div className='sidebar__recent-item__container'>
48
 
49
      <section className='sidebar__recent-item'>
50
        <p>{title}</p>
51
        <div className='sidebar__recent-actions'>
4317 stevensc 52
          <button className='sidebar__recent-icon' onClick={() => setDisplayMenu(!displayMenu)}>
4313 stevensc 53
            <ExpandMoreIcon />
54
          </button>
55
        </div>
4314 stevensc 56
      </section>
4313 stevensc 57
 
4317 stevensc 58
      <ul className={`helper__list ${displayMenu ? 'show' : 'hide'}`}>
4314 stevensc 59
        {widgetData.length
4317 stevensc 60
          ? dataSlice().map(({ id, name, profile }) =>
4314 stevensc 61
            <li key={id}>
4316 stevensc 62
              <a href={profile} className='helper__list-item'>
4313 stevensc 63
                <GroupIcon />
4314 stevensc 64
                <span>{name}</span>
65
              </a>
66
            </li>
67
          )
68
          : <EmptySection message='Sin resultados' />
69
        }
4317 stevensc 70
        {widgetData.length >= 3 &&
4319 stevensc 71
          <li className='helper__list-item justify-content-center cursor-pointer py-2' onClick={() => setLookMore(!lookMore)}>
4318 stevensc 72
            <span>
4317 stevensc 73
              {lookMore ? 'Ver menos' : 'Ver mas'}
74
            </span>
75
          </li>
76
        }
4314 stevensc 77
      </ul>
78
 
4313 stevensc 79
    </div>
80
  )
81
}
82
 
83
HelpersContainer.Item = Item
84
 
85
export default HelpersContainer