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.
 
 

73 line
2.4 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 GetDataYamalube from "../../api/product/accessories.js";
  11. import DataYamalube from "../../pages-sections/product/yamalube.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/yamalube',
  19. query: (values&&values.length!=0)?{ filter: values[0]["name"] }:{},
  20. })
  21. }
  22. const Yamalube = function ({ selected, yamalube, 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. <DataYamalube selected={(selected=="")?null:selected[0]["id"]} handleName={handleName} yamalube={yamalube} backend={backend} />
  42. </QueryClientProvider>
  43. </div>
  44. <Footer />
  45. </div>
  46. );
  47. };
  48. export default Yamalube;
  49. export async function getServerSideProps(context) {
  50. var yamalube = [];
  51. var filter = context.query.filter||"";
  52. var selected = "";
  53. const backend = process.env.BACKEND_SERVER_URI;
  54. var res = await GetDataYamalube.GetYamalube(filter);
  55. if (res["STATUS"] === 1) {
  56. yamalube = res["DATA"]["accessories"];
  57. if (filter !=""){
  58. selected = yamalube.filter((i)=>i.name==filter);
  59. }
  60. }
  61. return {
  62. props: { selected, yamalube, backend }, // will be passed to the page component as props
  63. };
  64. }