You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

50 regels
1.9 KiB

  1. import React from 'react';
  2. import Header from "@/components/Company/Header";
  3. import Footer from "@/components/Company/Footer";
  4. import PageBanner from '@/components/Common/PageBanner';
  5. import NewsList from '@/components/Common/new/NewsList';
  6. //api
  7. import Social from "@/api/new/social";
  8. import News from "@/api/new/news";
  9. import Company from "@/api/new/company";
  10. const NewsPage = ({companyData,company,icon,sosmed,news,pageCount,page,desc}) => {
  11. return (
  12. <>
  13. <Header company={company} icon={icon}/>
  14. <PageBanner pageTitle="Berita Terbaru" />
  15. <NewsList company={company} news={news} current={page} pages={pageCount}/>
  16. <Footer company={companyData} icon={icon} desc={desc} social={sosmed}/>
  17. </>
  18. )
  19. }
  20. export async function getServerSideProps(context) {
  21. var companyName = process.env.NEXT_PUBLIC_COMPANY;
  22. var page = context.query.p||1;
  23. var props = {};
  24. try{
  25. var res = await Company.companyByName(companyName);
  26. if (res["STATUS"] === 1) {
  27. props["icon"] = res["DATA"]["companies"].data[0].attributes.Icon.data.attributes.url;
  28. props["desc"] = res["DATA"]["companies"].data[0].attributes.Description;
  29. props["companyData"] =res["DATA"]["companies"].data[0].attributes;
  30. }
  31. var socials = await Social.socialByCompany(companyName);
  32. if(socials["STATUS"]==1){
  33. props["sosmed"] = socials["DATA"].socialMedias.data;
  34. }
  35. var news = await News.newsByCompanyName(companyName,6,page);
  36. if(news["STATUS"]==1){
  37. props["news"] = news["DATA"].contents.data;
  38. props["pageCount"] = news["DATA"].contents.meta.pagination.pageCount;
  39. }
  40. props["page"] = page;
  41. props["company"] = companyName;
  42. }
  43. catch(e){}
  44. return {
  45. props, // will be passed to the page component as props
  46. };
  47. }
  48. export default NewsPage;