Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
3503 stevensc 1
/* eslint-disable react/prop-types */
2369 stevensc 2
import React, { useEffect, useState } from 'react';
1386 steven 3
import { addNotification } from '../../../redux/notification/notification.actions';
4823 stevensc 4
import EmptySection from '../../../shared/empty-section/EmptySection';
1386 steven 5
import { axios } from '../../../utils';
6
 
3503 stevensc 7
export default function HomeNews({
4440 stevensc 8
    classname = 'peopleYouMayKnow',
4109 stevensc 9
    currentPost = null
3503 stevensc 10
}) {
1386 steven 11
    const [news, setNews] = useState([])
12
    const loadNews = () => {
13
        axios.get('/helpers/posts')
4098 stevensc 14
            .then(({ data: response }) => {
4088 stevensc 15
                if (!response.success) {
16
                    addNotification({
17
                        style: "danger",
18
                        msg: response.data,
19
                    });
1386 steven 20
                }
4088 stevensc 21
                setNews(response.data)
1386 steven 22
            })
23
            .catch(() => {
24
                addNotification({
4088 stevensc 25
                    style: "danger",
1386 steven 26
                    msg: "Disculpe, ha ocurrido un error buscando novedades",
27
                });
28
            })
29
    }
4098 stevensc 30
 
1386 steven 31
    useEffect(() => {
32
        loadNews()
33
    }, [])
4088 stevensc 34
 
1386 steven 35
    return (
4440 stevensc 36
        <div className={classname}>
3921 stevensc 37
            <div className="sd-title">
38
                <h3>Novedades</h3>
39
            </div>
40
            <div className="suggestions-list">
4824 stevensc 41
                {!news.length
4823 stevensc 42
                    ? <EmptySection message='Aún no hay novedades disponibles' />
43
                    : news.map(element => {
4099 stevensc 44
                        if (element.link.includes(currentPost)) {
4098 stevensc 45
                            return null
46
                        }
47
 
3921 stevensc 48
                        return (
49
                            <div key={element.title} className='postsList'>
4823 stevensc 50
                                <img src={element.image} alt={`${element.title} image`} />
4088 stevensc 51
                                <div className="d-flex flex-column" style={{ gap: '.5rem' }}>
4763 stevensc 52
                                    <a href={element.link} target='secondary'>
4823 stevensc 53
                                        <h4>{element.title}</h4>
4442 stevensc 54
                                    </a>
4823 stevensc 55
                                    <span>{element.date}</span>
1386 steven 56
                                </div>
3921 stevensc 57
                                <a
4088 stevensc 58
                                    className="btn btn-primary"
3921 stevensc 59
                                    href={element.link}
4763 stevensc 60
                                    target="secondary"
3921 stevensc 61
                                >
4095 stevensc 62
                                    Ver más
3921 stevensc 63
                                </a>
64
                            </div>
65
                        )
4823 stevensc 66
                    })}
1386 steven 67
            </div>
2678 stevensc 68
        </div >
1386 steven 69
    )
70
}