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.
 
 

79 line
2.5 KiB

  1. import React from "react";
  2. import classNames from "classnames";
  3. import { makeStyles } from "@material-ui/core/styles";
  4. import Router from 'next/router'
  5. import Header from "components/Header/Header.js";
  6. import HeaderLinks from "components/Header/HeaderLinks.js";
  7. import Parallax from "components/Parallax/Parallax.js";
  8. import styles from "assets/jss/nextjs-material-kit/pages/components.js";
  9. import Footer from "components/Footer/Footer.js";
  10. import Getdealer from "api/dealer/dealer.js";
  11. import DataSnackbarContent from "pages-sections/yamaha/snackbar.js";
  12. import DataDealers from "pages-sections/yamaha/dealers/dealers.js";
  13. import { QueryClient, QueryClientProvider, useQuery } from 'react-query'
  14. import stylecss from "pages/home.css";
  15. const queryClient = new QueryClient()
  16. const handleName = values => {
  17. Router.push({
  18. pathname: '/yamaha/dealers',
  19. query: (values&&values.length!=0)?{ filter: values[0]["name"] }:{},
  20. })
  21. }
  22. const useStyles = makeStyles(styles);
  23. const Dealers = function ({ selected, backend, dealers, ...props }) {
  24. const classes = useStyles();
  25. const { ...rest } = props;
  26. return (
  27. <div>
  28. <Header
  29. leftLinks={<HeaderLinks/>}
  30. fixed
  31. color="info"
  32. changeColorOnScroll={{
  33. height: 400,
  34. color: "white",
  35. }}
  36. {...rest}
  37. />
  38. <Parallax image={require("assets/img/dealers.png")}styles={{ marginTop: "50px" }}/>
  39. <div className={classNames(classes.main, classes.mainRaised)}>
  40. <QueryClientProvider client={queryClient}>
  41. <DataSnackbarContent />
  42. <DataDealers selected={(selected=="")?null:selected[0]["id"]} handleName={handleName} dealers={dealers} backend={backend} />
  43. </QueryClientProvider>
  44. <a href="https://wa.me/+6287797315685" class="float" target="_blank">
  45. <i class="fa fa-whatsapp my-float"></i>
  46. </a>
  47. </div>
  48. <Footer />
  49. </div>
  50. );
  51. };
  52. export default Dealers;
  53. export async function getServerSideProps(context) {
  54. var dealers = [];
  55. var filter = context.query.filter||"";
  56. var selected = "";
  57. const backend = process.env.BACKEND_SERVER_URI;
  58. var res = await Getdealer.GetDealers(filter);
  59. if (res["STATUS"] === 1) {
  60. dealers = res["DATA"]["dealers"];
  61. if (filter !=""){
  62. selected = dealers.filter((i)=>i.name==filter);
  63. }
  64. }
  65. return {
  66. props: { selected, dealers, backend, }, // will be passed to the page component as props
  67. };
  68. }