Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4490 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
4489 stevensc 1
/* eslint-disable react/prop-types */
2
import React, { useEffect, useState } from 'react'
3
import { axios } from '../../utils';
4
import EmptySection from '../empty-section/EmptySection';
5
import ExpandMoreIcon from '@mui/icons-material/ExpandMore'
4490 stevensc 6
import './Widgets.scss'
4489 stevensc 7
 
8
const SuggestionWidget = ({ url, title }) => {
9
    const [suggestData, setSuggestData] = useState([]);
10
    const [lookMore, setLookMore] = useState(false);
11
 
12
    const getData = () => {
13
        axios.get(url)
14
            .then(({ data: response }) => {
15
                const { success, data } = response
16
                if (success) {
17
                    setSuggestData(data.sort((a, b) => a.priority - b.priority).reverse());
18
                }
19
            });
20
    }
21
 
22
    useEffect(() => {
23
        getData()
24
    }, []);
25
 
26
    const dataSlice = () => {
27
        let infoFollows = [...suggestData]
28
        if (!lookMore) {
4490 stevensc 29
            infoFollows = infoFollows.slice(0, 3)
4489 stevensc 30
        }
31
        return infoFollows
32
    }
33
 
34
    return (
35
        <div className='suggest__widget'>
36
            <div className="linked__widget-header">
37
                <h3>{title}</h3>
38
            </div>
39
            <div className='linked__widget-list'>
40
                {suggestData.length
41
                    ? dataSlice().map(({ id, name, image, profile }) => {
42
                        return (
43
                            <div className="linked__widget-content" key={id}>
44
                                <a href={profile} target="_blank" rel="noreferrer">
45
                                    <img src={image} alt={`${name} profile image`} />
46
                                </a>
47
                                <div className="linked__widget-info">
48
                                    <h4>{name}</h4>
49
                                    <a className='btn btn-primary' href={profile} target="_blank" rel="noreferrer">
50
                                        Ver perfil
51
                                    </a>
52
                                </div>
53
                            </div>
54
                        )
55
                    })
56
                    : <EmptySection message="Sin sugerencias" />
57
                }
58
            </div>
4491 stevensc 59
            <div className="load__suggest" onClick={() => setLookMore(!lookMore)}>
4489 stevensc 60
                <span>{lookMore ? 'Ver menos' : 'Ver más'}</span>
4491 stevensc 61
                <ExpandMoreIcon />
4489 stevensc 62
            </div>
63
        </div >
64
    )
65
}
66
 
67
export default SuggestionWidget