Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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