Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 

68 rindas
2.3 KiB

  1. import React, { useState, useEffect } from "react";
  2. import Router, { withRouter } from "next/router";
  3. import ReactHtmlParser from "react-html-parser";
  4. // @material-ui/core components
  5. import { makeStyles } from "@material-ui/core/styles";
  6. import ReactPaginate from "react-paginate";
  7. // component
  8. import styles from "assets/jss/nextjs-material-kit/pages/componentsSections/notificationsStyles.js";
  9. import Paginations from "components/Pagination/Pagination.js";
  10. const useStyles = makeStyles(styles);
  11. const DataLatestNews = function ({ backend, news, ...props }) {
  12. const [isLoading, setLoading] = useState(false); //State for the loading indicator
  13. const startLoading = () => setLoading(true);
  14. const stopLoading = () => setLoading(false);
  15. useEffect(() => {
  16. //After the component is mounted set router event handlers
  17. Router.events.on("routeChangeStart", startLoading);
  18. Router.events.on("routeChangeComplete", stopLoading);
  19. return () => {
  20. Router.events.off("routeChangeStart", startLoading);
  21. Router.events.off("routeChangeComplete", stopLoading);
  22. };
  23. }, []);
  24. const pagginationHandler = (page) => {
  25. const currentPath = props.router.pathname;
  26. const currentQuery = props.router.query;
  27. currentQuery.page = page.selected + 1;
  28. props.router.push({
  29. pathname: currentPath,
  30. query: currentQuery,
  31. });
  32. };
  33. const classes = useStyles();
  34. const latnews = news.map((data) => {
  35. return (
  36. <div className={classes.section} style={{ padding: "40px" }}>
  37. <div align="center" style={{ marginTop: "-40px" }}>
  38. <h2>{data.title}</h2>
  39. </div>
  40. <br></br>
  41. <br></br>
  42. <div align="center">
  43. <img
  44. src={`${backend}${data.img[0]["url"]}`}
  45. alt="First slide"
  46. className="slick-image"
  47. />
  48. <div>
  49. <br></br>
  50. {data.published_at}
  51. </div>
  52. </div>
  53. <br></br>
  54. <h5 align="justify">{ReactHtmlParser(data.description)}</h5>
  55. </div>
  56. );
  57. });
  58. return <div>{latnews}</div>;
  59. };
  60. export default DataLatestNews;