Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
6515 stevensc 1
import React, { useEffect, useState } from 'react'
2
import { axios } from '../../../utils'
3
import { useSelector } from 'react-redux'
4
 
5
import { addNotification } from '../../../redux/notification/notification.actions'
6
 
7
import EmptySection from '../../UI/EmptySection'
8
 
9
export default function HomeNews({ currentPost }) {
10
  const labels = useSelector(({ intl }) => intl.labels)
11
  const [news, setNews] = useState([])
12
 
13
  const loadNews = () => {
14
    axios
15
      .get('/helpers/posts')
16
      .then(({ data: response }) => {
17
        if (!response.success) {
18
          addNotification({
19
            style: 'danger',
20
            msg: response.data,
21
          })
22
        }
23
        setNews(response.data)
24
      })
25
      .catch(() => {
26
        addNotification({
27
          style: 'danger',
28
          msg: 'Disculpe, ha ocurrido un error buscando novedades',
29
        })
30
      })
31
  }
32
 
33
  useEffect(() => {
34
    loadNews()
35
  }, [])
36
 
37
  return (
38
    <div className="posts-widget">
6832 stevensc 39
      <h3>{labels.posts}</h3>
6515 stevensc 40
      <div className="posts-list">
41
        {!news.length ? (
6832 stevensc 42
          <EmptySection message={labels.not_available_posts} />
6515 stevensc 43
        ) : (
44
          news.map((element) => {
45
            if (element.link.includes(currentPost)) {
46
              return null
47
            }
48
 
49
            return (
50
              <div key={element.title} className="post-item">
51
                <a href={element.link} target="secondary">
52
                  <img src={element.image} alt={`${element.title} image`} />
53
                </a>
54
                <div className="post-info">
55
                  <a href={element.link} target="secondary">
56
                    <h4 title={element.title}>{element.title}</h4>
57
                  </a>
58
                  <span>{element.date}</span>
59
                </div>
60
              </div>
61
            )
62
          })
63
        )}
64
      </div>
65
    </div>
66
  )
67
}