Proyectos de Subversion LeadersLinked - SPA

Rev

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

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