Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4098 | Rev 4109 | 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({
4098 stevensc 7
    containerClassName = '',
8
    currentPost = ''
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 (
3921 stevensc 35
        <div className={`${containerClassName} peopleYouMayKnow`}>
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' }}>
3921 stevensc 54
                                    <h4>
55
                                        {element.title}
56
                                    </h4>
57
                                    <span>
58
                                        {element.date}
59
                                    </span>
1386 steven 60
                                </div>
3921 stevensc 61
                                <a
4088 stevensc 62
                                    className="btn btn-primary"
3921 stevensc 63
                                    href={element.link}
64
                                    target="_blank"
65
                                    rel="noreferrer"
66
                                >
4095 stevensc 67
                                    Ver más
3921 stevensc 68
                                </a>
69
                            </div>
70
                        )
71
                    })
72
                }
1386 steven 73
            </div>
2678 stevensc 74
        </div >
1386 steven 75
    )
76
}