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.
 
 

135 line
4.3 KiB

  1. import React from "react";
  2. import classNames from "classnames";
  3. import { makeStyles } from "@material-ui/core/styles";
  4. import { QueryClient, QueryClientProvider, useQuery } from 'react-query'
  5. import Header from "components/Header/Header.js";
  6. import HeaderLinks from "components/Header/HeaderLinks.js";
  7. import Footer from "components/Footer/Footer.js";
  8. import Parallax from "components/Parallax/Parallax.js";
  9. import styles from "assets/jss/nextjs-material-kit/pages/components.js";
  10. import GetDataApparel from "../../api/product/apparel.js";
  11. import DataApparel from "../../pages-sections/product/apparel.js";
  12. import DataSnackbarContent from "../../pages-sections/snackbar.js";
  13. import Router from 'next/router'
  14. const useStyles = makeStyles(styles);
  15. const queryClient = new QueryClient();
  16. const handleName = values => {
  17. Router.push({
  18. pathname: '/product/apparel',
  19. query: (values&&values.length!=0)?{ filter: values[0]["name"] }:{},
  20. })
  21. }
  22. const Apparel = function ({ selected, apparel, asia, basic, merchand, maxi, rainsuit, motogp, offroad, backend, ...props }) {
  23. const classes = useStyles();
  24. const { ...rest } = props;
  25. return (
  26. <div>
  27. <Header
  28. rightLinks={<HeaderLinks />}
  29. fixed
  30. color="info"
  31. changeColorOnScroll={{
  32. height: 400,
  33. color: "white",
  34. }}
  35. {...rest}
  36. />
  37. <Parallax image={require("assets/img/yamalube.jpg")} height="200px"/>
  38. <div className={classNames(classes.main, classes.mainRaised)}>
  39. <QueryClientProvider client={queryClient}>
  40. <DataSnackbarContent/>
  41. <DataApparel selected={(selected=="")?null:selected[0]["id"]} handleName={handleName} apparel={apparel} asia={asia} basic={basic} merchand={merchand} maxi={maxi} rainsuit={rainsuit} motogp={motogp} offroad={offroad} backend={backend} />
  42. </QueryClientProvider>
  43. </div>
  44. <Footer />
  45. </div>
  46. );
  47. };
  48. export default Apparel;
  49. export async function getServerSideProps(context) {
  50. var apparel = [];
  51. var asia = [];
  52. var basic = [];
  53. var merchand = [];
  54. var maxi = [];
  55. var rainsuit = [];
  56. var motogp = [];
  57. var offroad = [];
  58. var filter = context.query.filter||"";
  59. var selected = "";
  60. const backend = process.env.BACKEND_SERVER_URI;
  61. var res = await GetDataApparel.GetApparel(filter);
  62. if (res["STATUS"] === 1) {
  63. apparel = res["DATA"]["apparels"];
  64. if (filter !=""){
  65. selected = apparel.filter((i)=>i.name==filter);
  66. }
  67. }
  68. var res = await GetDataApparel.GetApparel46Asia(filter);
  69. if (res["STATUS"] === 1) {
  70. asia = res["DATA"]["apparels"];
  71. if (filter !=""){
  72. selected = asia.filter((i)=>i.name==filter);
  73. }
  74. }
  75. var res = await GetDataApparel.GetApparelBasic(filter);
  76. if (res["STATUS"] === 1) {
  77. basic = res["DATA"]["apparels"];
  78. if (filter !=""){
  79. selected = basic.filter((i)=>i.name==filter);
  80. }
  81. }
  82. var res = await GetDataApparel.GetApparelMerchandise(filter);
  83. if (res["STATUS"] === 1) {
  84. merchand = res["DATA"]["apparels"];
  85. if (filter !=""){
  86. selected = merchand.filter((i)=>i.name==filter);
  87. }
  88. }
  89. var res = await GetDataApparel.GetApparelMaxi(filter);
  90. if (res["STATUS"] === 1) {
  91. maxi = res["DATA"]["apparels"];
  92. if (filter !=""){
  93. selected = maxi.filter((i)=>i.name==filter);
  94. }
  95. }
  96. var res = await GetDataApparel.GetApparelRainSuit(filter);
  97. if (res["STATUS"] === 1) {
  98. rainsuit = res["DATA"]["apparels"];
  99. if (filter !=""){
  100. selected = rainsuit.filter((i)=>i.name==filter);
  101. }
  102. }
  103. var res = await GetDataApparel.GetApparelMotoGP(filter);
  104. if (res["STATUS"] === 1) {
  105. motogp = res["DATA"]["apparels"];
  106. if (filter !=""){
  107. selected = motogp.filter((i)=>i.name==filter);
  108. }
  109. }
  110. var res = await GetDataApparel.GetApparelOffRoad(filter);
  111. if (res["STATUS"] === 1) {
  112. offroad = res["DATA"]["apparels"];
  113. if (filter !=""){
  114. selected = offroad.filter((i)=>i.name==filter);
  115. }
  116. }
  117. return {
  118. props: { selected, apparel, asia, basic, merchand, maxi, rainsuit, motogp, offroad, backend }, // will be passed to the page component as props
  119. };
  120. }