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.
 
 

98 lines
2.9 KiB

  1. import React from "react";
  2. import classNames from "classnames";
  3. import { makeStyles } from "@material-ui/core/styles";
  4. import Header from "components/Header/Header.js";
  5. import HeaderLinks from "components/Header/HeaderLinks.js";
  6. import Parallax from "components/Parallax/Parallax.js";
  7. import styles from "assets/jss/nextjs-material-kit/pages/components.js";
  8. import Footer from "components/Footer/Footer.js";
  9. import Getcarousels from "api/home/carousel.js";
  10. import Getdealer from "api/dealer/dealer.js";
  11. import DataSnackbarContent from "pages-sections/yamaha/snackbar.js";
  12. import DataCarousel from "pages-sections/yamaha/home/carousel.js";
  13. import DataService from "pages-sections/yamaha/home/service.js";
  14. import DataDealers from "pages-sections/yamaha/home/dealer.js"
  15. import stylecss from "pages/home.css"
  16. import Cookies from "cookies";
  17. const useStyles = makeStyles(styles);
  18. const Home = function ({
  19. dealers,
  20. backend,
  21. carousel,
  22. user,
  23. ...props
  24. }) {
  25. const classes = useStyles();
  26. const { ...rest } = props;
  27. <DataService service={props.service} />;
  28. return (
  29. <div>
  30. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"/>
  31. <Header
  32. leftLinks={<HeaderLinks username={user} />}
  33. fixed
  34. color="dark"
  35. changeColorOnScroll={{
  36. height: 400,
  37. color: "white",
  38. }}
  39. {...rest}
  40. />
  41. <Parallax
  42. image={require("assets/img/Promotion_2-1.jpg")}
  43. styles={{ marginTop: "50px" }}
  44. />
  45. <div className={classNames(classes.main, classes.mainRaised)}>
  46. <DataSnackbarContent />
  47. <DataCarousel carousel={carousel} backend={backend} />
  48. <DataService />
  49. <DataDealers dealers={dealers} backend={backend} />
  50. <a href="https://wa.me/+6287797315685" class="float" target="_blank">
  51. <i class="fa fa-whatsapp my-float"></i>
  52. </a>
  53. </div>
  54. <Footer />
  55. </div>
  56. );
  57. };
  58. export async function getServerSideProps(context) {
  59. var dealers = [];
  60. var carousel = [];
  61. const backend = process.env.BACKEND_SERVER_URI;
  62. var { req, resp } = context;
  63. const cookies = new Cookies(req, resp);
  64. var user = "";
  65. var userObj = (await cookies.get("user"))
  66. ? JSON.parse(await cookies.get("user"))
  67. : null;
  68. if (userObj) {
  69. let sessionId = userObj["partners_login_states"].filter(function (i) {
  70. return (
  71. i.business_partner && i.business_partner.name.toUpperCase() == "YAMAHA"
  72. );
  73. });
  74. if (sessionId.length != 0) user = userObj["username"];
  75. }
  76. var res = await Getcarousels.GetCarouselsYamaha();
  77. if (res["STATUS"] === 1) {
  78. carousel = res["DATA"]["carousels"];
  79. }
  80. var res = await Getdealer.GetHomeDealer();
  81. if (res["STATUS"] === 1) {
  82. dealers = res["DATA"]["dealers"];
  83. }
  84. return {
  85. props: { dealers, carousel, backend, user }, // will be passed to the page component as props
  86. };
  87. }
  88. export default Home;