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

154 lines
5.3 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 SparepartList from '@/components/Common/new/SparepartList';
  6. // import GetSparepart from "@/api/others/sparepart/sparepart.js";
  7. import Products from "@/api/new/product";
  8. import Company from "@/api/new/company";
  9. import Cookies from "cookies";
  10. import { QueryClient, QueryClientProvider, useQuery } from 'react-query'
  11. import Router from 'next/router'
  12. const queryClient = new QueryClient();
  13. const handleName = values => {
  14. Router.push({
  15. pathname: '/yamaha/Product/Sparepart',
  16. query: (values&&values.length!=0)?{ filter: values[0]["name"] }:{},
  17. })
  18. }
  19. const Shop = function ({ companyData,company,icon,desc,sosmed,category,selected,page, products, backend, user, ...props }) {
  20. return (
  21. <QueryClientProvider client={queryClient}>
  22. <Header company={company} icon={icon} />
  23. <PageBanner pageTitle="Products" />
  24. <SparepartList
  25. company={company}
  26. page={page}
  27. products={products}
  28. selected={selected}
  29. category={category}
  30. />
  31. <Footer company={companyData} icon={icon} social={sosmed} info={desc}/>
  32. </QueryClientProvider>
  33. )
  34. }
  35. export default Shop;
  36. export async function getServerSideProps(context) {
  37. var companyName = process.env.NEXT_PUBLIC_COMPANY;
  38. var page = context.query.p||1;
  39. var category = context.query.s||'ygp';
  40. var props = {};
  41. try{
  42. var res = await Company.companyByName(companyName);
  43. if (res["STATUS"] === 1) {
  44. props["icon"] = res["DATA"]["companies"].data[0].attributes.Icon.data.attributes.url;
  45. props["desc"] = res["DATA"]["companies"].data[0].attributes.Description;
  46. props["companyData"] =res["DATA"]["companies"].data[0].attributes;
  47. props["sosmed"] = res["DATA"]["companies"].data[0].attributes.Social_Medias.data;
  48. }
  49. var types = await Products.GetProductCategory();
  50. props["category"] = (types["STATUS"]==1 && types["DATA"]["productCategories"].data)?types["DATA"]["productCategories"].data.map((i)=>i.attributes.Name):["Helmet","Lube","Apparel",'Spare Part','Accessory'];
  51. props["category"] = props["category"].filter((i)=>i!='Unit');
  52. var products = await Products.GetProductOthers(res["DATA"]["companies"].data[0].id,props["category"],category,8,page);
  53. if(products["STATUS"]==1){
  54. props["products"] =products["DATA"];
  55. props["category"] = props["category"].filter((i)=>{
  56. return (products["DATA"][i.replace(' ','_')].data&&products["DATA"][i.replace(' ','_')].data.length>0);
  57. });
  58. }
  59. props["page"] = page;
  60. props["selected"] = category;
  61. props["company"] = companyName;
  62. }catch(e){console.log(e)}
  63. return {
  64. props
  65. };
  66. // var ygp = [];
  67. // var yamalube = [];
  68. // var helmet = [];
  69. // var apparel = [];
  70. // var accessories = [];
  71. // var filter = context.query.filter||"";
  72. // var selected = "";
  73. // const backend = process.env.BACKEND_SERVER_URI;
  74. // var { req, resp } = context;
  75. // const cookies = new Cookies(req, resp);
  76. // var user = "";
  77. // var userObj = (await cookies.get("user"))
  78. // ? JSON.parse(await cookies.get("user"))
  79. // : null;
  80. // if (userObj) {
  81. // let sessionId = userObj["partners_login_states"].filter(function (i) {
  82. // return (
  83. // i.business_partner && i.business_partner.name.toUpperCase() == "YAMAHA"
  84. // );
  85. // });
  86. // if (sessionId.length != 0) user = userObj["username"];
  87. // }
  88. // var res = await GetSparepart.GetSparepartYGP(filter);
  89. // if (res["STATUS"] === 1) {
  90. // ygp = res["DATA"]["ygParts"];
  91. // if (filter !=""){
  92. // selected = ygp.filter((i)=>i.name==filter);
  93. // }
  94. // }
  95. // var res = await GetSparepart.GetSparepartYamalube(filter);
  96. // if (res["STATUS"] === 1) {
  97. // yamalube = res["DATA"]["yamalubes"];
  98. // if (filter !=""){
  99. // selected = yamalube.filter((i)=>i.name==filter);
  100. // }
  101. // }
  102. // var res = await GetSparepart.GetHelmet(filter);
  103. // if (res["STATUS"] === 1) {
  104. // helmet = res["DATA"]["helmets"];
  105. // if (filter !=""){
  106. // selected = helmet.filter((i)=>i.name==filter);
  107. // }
  108. // }
  109. // var res = await GetSparepart.GetApparel(filter);
  110. // if (res["STATUS"] === 1) {
  111. // apparel = res["DATA"]["apparels"];
  112. // if (filter !=""){
  113. // selected = apparel.filter((i)=>i.name==filter);
  114. // }
  115. // }
  116. // var res = await GetSparepart.GetAcc(filter);
  117. // if (res["STATUS"] === 1) {
  118. // accessories = res["DATA"]["accessories"];
  119. // if (filter !=""){
  120. // selected = accessories.filter((i)=>i.name==filter);
  121. // }
  122. // }
  123. // return {
  124. // props: {
  125. // selected,
  126. // ygp,
  127. // yamalube,
  128. // helmet,
  129. // apparel,
  130. // accessories,
  131. // backend,
  132. // user,
  133. // }, // will be passed to the page component as props
  134. // };
  135. }