Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4442 | Rev 4763 | 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';
4
import { axios } from '../../../utils';
5
 
3503 stevensc 6
export default function HomeNews({
4440 stevensc 7
    classname = 'peopleYouMayKnow',
4109 stevensc 8
    currentPost = null
3503 stevensc 9
}) {
1386 steven 10
    const [news, setNews] = useState([])
11
    const loadNews = () => {
12
        axios.get('/helpers/posts')
4098 stevensc 13
            .then(({ data: response }) => {
4088 stevensc 14
                if (!response.success) {
15
                    addNotification({
16
                        style: "danger",
17
                        msg: response.data,
18
                    });
1386 steven 19
                }
4088 stevensc 20
                setNews(response.data)
1386 steven 21
            })
22
            .catch(() => {
23
                addNotification({
4088 stevensc 24
                    style: "danger",
1386 steven 25
                    msg: "Disculpe, ha ocurrido un error buscando novedades",
26
                });
27
            })
28
    }
4098 stevensc 29
 
1386 steven 30
    useEffect(() => {
31
        loadNews()
32
    }, [])
4088 stevensc 33
 
1386 steven 34
    return (
4440 stevensc 35
        <div className={classname}>
3921 stevensc 36
            <div className="sd-title">
37
                <h3>Novedades</h3>
38
            </div>
39
            <div className="suggestions-list">
40
                {
41
                    news.map(element => {
4099 stevensc 42
 
43
                        if (element.link.includes(currentPost)) {
4098 stevensc 44
                            return null
45
                        }
46
 
3921 stevensc 47
                        return (
48
                            <div key={element.title} className='postsList'>
49
                                <img
50
                                    src={element.image}
51
                                    alt={`${element.title} image`}
52
                                />
4088 stevensc 53
                                <div className="d-flex flex-column" style={{ gap: '.5rem' }}>
4757 stevensc 54
                                    <a href={element.link} target='_blank' rel="noreferrer">
4442 stevensc 55
                                        <h4>
56
                                            {element.title}
57
                                        </h4>
58
                                    </a>
3921 stevensc 59
                                    <span>
60
                                        {element.date}
61
                                    </span>
1386 steven 62
                                </div>
3921 stevensc 63
                                <a
4088 stevensc 64
                                    className="btn btn-primary"
3921 stevensc 65
                                    href={element.link}
66
                                    target="_blank"
67
                                    rel="noreferrer"
68
                                >
4095 stevensc 69
                                    Ver más
3921 stevensc 70
                                </a>
71
                            </div>
72
                        )
73
                    })
74
                }
1386 steven 75
            </div>
2678 stevensc 76
        </div >
1386 steven 77
    )
78
}