Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 

102 рядки
3.5 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 ProductCard from "@/components/Common/new/UnitList";
  6. import Products from "@/api/new/product";
  7. import Company from "@/api/new/company";
  8. import Cookies from "cookies";
  9. import { QueryClient, QueryClientProvider, useQuery } from 'react-query'
  10. import Router from 'next/router'
  11. import { Search } from "react-feather";
  12. const queryClient = new QueryClient();
  13. const handleName = values => {
  14. Router.push({
  15. pathname: '/yamaha/Product/Motor',
  16. query: (values&&values.length!=0)?{ filter: values[0]["name"] }:{},
  17. })
  18. }
  19. const Shop = function ({ companyData,company,total,page,pageCount,icon,desc,sosmed,selected, products, backend, user, ...props }) {
  20. return (
  21. <>
  22. <QueryClientProvider client={queryClient}>
  23. <Header company={company} icon={icon}/>
  24. <PageBanner pageTitle="Products" />
  25. <ProductCard company={company} total={total} current={page} pages={pageCount} handleName={handleName} product={products} />
  26. <Footer company={companyData} info={desc} social={sosmed} icon={icon}/>
  27. </QueryClientProvider>
  28. </>
  29. );
  30. };
  31. export default Shop;
  32. export async function getServerSideProps(context) {
  33. var companyName = process.env.NEXT_PUBLIC_COMPANY;
  34. var page = context.query.p||1;
  35. var props = {};
  36. try{var res = await Company.companyByName(companyName);
  37. if (res["STATUS"] === 1) {
  38. props["icon"] = res["DATA"]["companies"].data[0].attributes.Icon.data.attributes.url;
  39. props["companyData"] =res["DATA"]["companies"].data[0].attributes;
  40. props["desc"] = res["DATA"]["companies"].data[0].attributes.Description;
  41. props["sosmed"] = res["DATA"]["companies"].data[0].attributes.Social_Medias.data;
  42. }
  43. var products = await Products.GetProduct(res["DATA"]["companies"].data[0].id,'Unit',8,page);
  44. if(products['STATUS']==1){
  45. props["products"]= products["DATA"].products.data;
  46. props["pageCount"] = products["DATA"].products.meta.pagination.pageCount;
  47. props["total"] = products["DATA"].products.meta.pagination.total;
  48. }
  49. props["company"] = companyName;
  50. props["page"] = page;}catch(e){};
  51. return {props};
  52. // var product = [];
  53. // const backend = process.env.BACKEND_SERVER_URI;
  54. // var filter = context.query.filter||"";
  55. // var selected = "";
  56. // var { req, resp } = context;
  57. // const cookies = new Cookies(req, resp);
  58. // var user = "";
  59. // var userObj = (await cookies.get("user"))
  60. // ? JSON.parse(await cookies.get("user"))
  61. // : null;
  62. // if (userObj) {
  63. // let sessionId = userObj["partners_login_states"].filter(function (i) {
  64. // return (
  65. // i.business_partner &&
  66. // i.business_partner.name.toUpperCase() == "YAMAHA"
  67. // );
  68. // });
  69. // if (sessionId.length != 0) user = userObj["username"];
  70. // }
  71. // var res = await Getproduct.GetProduct(filter);
  72. // if (res["STATUS"] === 1) {
  73. // product = res["DATA"]["products"];
  74. // if (filter !=""){
  75. // selected = product.filter((i)=>i.name==filter);
  76. // }
  77. // }
  78. // return {
  79. // props: {
  80. // selected,
  81. // product,
  82. // backend,
  83. // user,
  84. // }, // will be passed to the page component as props
  85. // };
  86. }