Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 67 | Rev 196 | 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;
195 stevensc 19
        console.log(data);
20
        console.log(success);
67 stevensc 21
 
22
        if (!success) {
195 stevensc 23
          addNotification({ style: "danger", msg: data });
67 stevensc 24
          return;
5 stevensc 25
        }
67 stevensc 26
 
27
        setNews(data);
5 stevensc 28
      })
29
      .catch(() => {
30
        addNotification({
67 stevensc 31
          style: "danger",
32
          msg: "Disculpe, ha ocurrido un error buscando novedades",
33
        });
34
      });
35
  };
5 stevensc 36
 
37
  useEffect(() => {
67 stevensc 38
    loadNews();
39
  }, []);
5 stevensc 40
 
41
  return (
42
    <div className="posts-widget">
43
      <h3>{labels.posts}</h3>
44
      <div className="posts-list">
45
        {!news.length ? (
46
          <EmptySection message={labels.not_available_posts} />
47
        ) : (
48
          news.map((element) => {
49
            if (element.link.includes(currentPost)) {
67 stevensc 50
              return null;
5 stevensc 51
            }
52
 
53
            return (
54
              <div key={element.title} className="post-item">
55
                <Link to={element.link}>
56
                  <img src={element.image} alt={`${element.title} image`} />
57
                </Link>
58
                <div className="post-info">
59
                  <Link to={element.link}>
60
                    <h4 title={element.title}>{element.title}</h4>
61
                  </Link>
62
                  <span>{element.date}</span>
63
                </div>
64
              </div>
67 stevensc 65
            );
5 stevensc 66
          })
67
        )}
68
      </div>
69
    </div>
67 stevensc 70
  );
5 stevensc 71
}