Proyectos de Subversion LeadersLinked - SPA

Rev

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

import React, { useEffect, useState } from "react";
import { axios } from "../../../utils";
import { useSelector } from "react-redux";

import { addNotification } from "../../../redux/notification/notification.actions";

import EmptySection from "../../UI/EmptySection";
import { Link } from "react-router-dom";

export default function HomeNews({ currentPost }) {
  const labels = useSelector(({ intl }) => intl.labels);
  const [news, setNews] = useState([]);

  const loadNews = () => {
    axios
      .get("/helpers/posts")
      .then((response) => {
        const { data, success } = response.data;

        if (!success) {
          addNotification({ style: "danger", msg: data });
          return;
        }

        setNews(data);
      })
      .catch(() => {
        addNotification({
          style: "danger",
          msg: "Disculpe, ha ocurrido un error buscando novedades",
        });
      });
  };

  useEffect(() => {
    loadNews();
  }, []);

  return (
    <div className="posts-widget">
      <h3>{labels.posts}</h3>
      <div className="posts-list">
        {!news.length ? (
          <EmptySection message={labels.not_available_posts} />
        ) : (
          news.map((element) => {
            if (element.link.includes(currentPost)) {
              return null;
            }

            return (
              <div key={element.title} className="post-item">
                <Link to={element.link}>
                  <img src={element.image} alt={`${element.title} image`} />
                </Link>
                <div className="post-info">
                  <Link to={element.link}>
                    <h4 title={element.title}>{element.title}</h4>
                  </Link>
                  <span>{element.date}</span>
                </div>
              </div>
            );
          })
        )}
      </div>
    </div>
  );
}