25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

111 lines
4.8 KiB

  1. import Link from "next/link";
  2. import * as Icon from 'react-feather';
  3. const NewsList = ({company,news,pages,current})=>{
  4. if(news&&news.length>0){
  5. const pagination = ()=>{
  6. var paging = [];
  7. for(var i=1;i<=pages;i++){
  8. paging.push(
  9. <li className={`page-item ${i==current?'active':''}`}>
  10. <Link key={i} href={`/news?p=${i}`}>
  11. <a className="page-link" >{i}</a>
  12. </Link></li>
  13. );
  14. }
  15. return paging;
  16. };
  17. const listNews = news.map((data,idx)=>{
  18. return(
  19. <div key={idx} className="col-lg-4 col-md-6">
  20. <div className="single-blog-post">
  21. <div className="blog-image">
  22. <Link href={`/news/details/${data.id}`}>
  23. <a>
  24. <img src={(!data.attributes.Image.data)?'/images/blog-image/blog1.jpg':`/api/util?img=${encodeURIComponent(data.attributes.Image.data.attributes.url)}`} alt="image" />
  25. </a>
  26. </Link>
  27. <div className="date">
  28. <Icon.Calendar /> {new Date(data.attributes.publishedAt).toLocaleDateString('ID',{ weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })}
  29. </div>
  30. </div>
  31. <div className="blog-post-content">
  32. <h3>
  33. <Link href={`/news/details/${data.id}`}>
  34. <a>{data.attributes.Title}</a>
  35. </Link>
  36. </h3>
  37. {/* <span>By <a >Admin</a></span> */}
  38. <br/>
  39. <Link href={`/news/details/${data.id}`}>
  40. <a className="read-more-btn">
  41. Read More <Icon.ArrowRight />
  42. </a>
  43. </Link>
  44. </div>
  45. </div>
  46. </div>);
  47. });
  48. return(
  49. <div className="blog-area ptb-80">
  50. <div className="container">
  51. <div className="row justify-content-center">
  52. {listNews}
  53. {/* Pagination */}
  54. <div className="col-lg-12 col-md-12">
  55. <div className="pagination-area">
  56. <nav aria-label="Page navigation">
  57. <ul className="pagination justify-content-center">
  58. {(current!='1')?(<li className="page-item"><Link href={`./?p=${parseInt(current)-1}`}>
  59. <a className="page-link" >Prev</a>
  60. </Link></li>):""}
  61. {pagination()}
  62. {(current!=pages)?<li className="page-item"><Link href={`./?p=${parseInt(current)+1}`}>
  63. <a className="page-link" >Next</a>
  64. </Link></li>:""}
  65. </ul>
  66. </nav>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. <div className="shape1">
  72. <img src="/images/shape1.png" alt="shape" />
  73. </div>
  74. <div className="shape2 rotateme">
  75. <img src="/images/shape2.svg" alt="shape" />
  76. </div>
  77. <div className="shape3">
  78. <img src="/images/shape3.svg" alt="shape" />
  79. </div>
  80. <div className="shape4">
  81. <img src="/images/shape4.svg" alt="shape" />
  82. </div>
  83. <div className="shape6 rotateme">
  84. <img src="/images/shape4.svg" alt="shape" />
  85. </div>
  86. <div className="shape7">
  87. <img src="/images/shape4.svg" alt="shape" />
  88. </div>
  89. <div className="shape8 rotateme">
  90. <img src="/images/shape2.svg" alt="shape" />
  91. </div>
  92. </div>
  93. );
  94. }
  95. else{
  96. return (
  97. <div className="pt-80 pb-50 justify-content-center">
  98. <center><h5>Belum ada berita untuk saat ini. Tunggu berita selanjutnya dari kami ya!</h5></center>
  99. </div>
  100. );
  101. }
  102. };
  103. export default NewsList;