25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

106 lines
3.3 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 Footer from "components/Footer/Footer.js";
  7. import Checkout from "pages-sections/yamaha/cart/checkout.js";
  8. import Parallax from "components/Parallax/Parallax.js";
  9. import styles from "assets/jss/nextjs-material-kit/pages/components.js";
  10. import GetCheckoutproduct from "api/cart/checkout.js";
  11. import GetCheckoutprofile from "api/profile/profile.js";
  12. import Cookies from "cookies";
  13. import stylecss from "pages/home.css";
  14. const useStyles = makeStyles(styles);
  15. const ProductDetails = function ({ backend, checkoutproduct, user, checkoutprofile, ...props }) {
  16. const classes = useStyles();
  17. const { ...rest } = props;
  18. return (
  19. <div>
  20. <Header
  21. leftLinks={<HeaderLinks username={user} />}
  22. fixed
  23. color="info"
  24. changeColorOnScroll={{
  25. height: 400,
  26. color: "white"
  27. }}
  28. {...rest}
  29. />
  30. <Parallax image={require("assets/img/Promotion_2-1.jpg")} width="200px"/>
  31. <div className={classNames(classes.main, classes.mainRaised)}>
  32. <Checkout checkoutproduct={checkoutproduct} backend={backend} checkoutprofile={checkoutprofile} />
  33. <a href="https://wa.me/+6287797315685" class="float" target="_blank">
  34. <i class="fa fa-whatsapp my-float"></i>
  35. </a>
  36. </div>
  37. <Footer />
  38. </div>
  39. );
  40. }
  41. export default ProductDetails;
  42. export async function getServerSideProps(context) {
  43. var {query} = context;
  44. var checkoutproduct = [];
  45. var checkoutprofile = [];
  46. const backend = process.env.BACKEND_SERVER_URI;
  47. var { req, resp } = context;
  48. const cookies = new Cookies(req, resp);
  49. var user = "";
  50. var userObj = (await cookies.get("user"))
  51. ? JSON.parse(await cookies.get("user"))
  52. : null;
  53. if (userObj) {
  54. let sessionId = userObj["partners_login_states"].filter(function (i) {
  55. return (
  56. i.business_partner && i.business_partner.name.toUpperCase() == "YAMAHA"
  57. );
  58. });
  59. if (sessionId.length != 0) user = userObj["username"];
  60. }
  61. var res = await GetCheckoutproduct.GetCheckoutproduct(query.s||0);
  62. if (res["STATUS"] === 1) {
  63. checkoutproduct = res["DATA"]["products"];
  64. }
  65. var res = await GetCheckoutprofile.profile();
  66. if (res["STATUS"] === 1) {
  67. checkoutprofile = res["DATA"]["users"];
  68. }
  69. var request = require("request");
  70. var provinces = [];
  71. var cities = [];
  72. var province = {
  73. method: 'GET',
  74. url: 'https://api.rajaongkir.com/starter/province',
  75. headers: {key: 'f4ac703bb25ada32478d52ef2e1cab7a'}
  76. };
  77. var city = {
  78. method: 'GET',
  79. url: 'https://api.rajaongkir.com/starter/city',
  80. headers: {key: 'f4ac703bb25ada32478d52ef2e1cab7a'}
  81. };
  82. await request(province, function (error, response, body) {
  83. if (error) throw new Error(error);
  84. });
  85. request(city, function (error, response, body) {
  86. if (error) throw new Error(error);
  87. });
  88. console.log(provinces);
  89. return {
  90. props: { checkoutprofile, user, checkoutproduct, backend }, // will be passed to the page component as props
  91. };
  92. }