| @@ -3,16 +3,44 @@ import apollo from "../../lib/apollo.js"; | |||||
| async function GetProduct(token="") { | async function GetProduct(token="") { | ||||
| var res = await apollo.query( | var res = await apollo.query( | ||||
| ` | ` | ||||
| query{ | |||||
| products | |||||
| { | |||||
| name | |||||
| description | |||||
| img{ | |||||
| id | |||||
| } | |||||
| } | |||||
| } `, | |||||
| query{ | |||||
| products{ | |||||
| id | |||||
| name | |||||
| price | |||||
| description | |||||
| img{ | |||||
| url | |||||
| } | |||||
| business_partner | |||||
| { | |||||
| name | |||||
| } | |||||
| } | |||||
| } `, | |||||
| token | |||||
| ); | |||||
| return res; | |||||
| } | |||||
| async function GetDetailProduct(token="") { | |||||
| var res = await apollo.query( | |||||
| ` | |||||
| query{ | |||||
| products | |||||
| { | |||||
| name | |||||
| price | |||||
| description | |||||
| img{ | |||||
| url | |||||
| } | |||||
| business_partner | |||||
| { | |||||
| name | |||||
| } | |||||
| } | |||||
| } `, | |||||
| token | token | ||||
| ); | ); | ||||
| return res; | return res; | ||||
| @@ -20,4 +48,5 @@ async function GetProduct(token="") { | |||||
| module.exports = { | module.exports = { | ||||
| GetProduct: GetProduct, | GetProduct: GetProduct, | ||||
| GetDetailProduct:GetDetailProduct, | |||||
| }; | }; | ||||
| @@ -39,10 +39,10 @@ export default function PageChange(props) { | |||||
| <div className={classes.iconWrapper}> | <div className={classes.iconWrapper}> | ||||
| <CircularProgress className={classes.progress} /> | <CircularProgress className={classes.progress} /> | ||||
| </div> | </div> | ||||
| <h4 className={classes.title}> | |||||
| Thamrin Group | |||||
| </h4> | |||||
| <div align="center"> | |||||
| <img href="https://automotive.thamrin.co.id/wp-content/uploads/2019/07/logo-thamrin-group.png" /> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | |||||
| ); | ); | ||||
| } | } | ||||
| @@ -1,493 +0,0 @@ | |||||
| import React from "react"; | |||||
| // nodejs library that concatenates classes | |||||
| import classNames from "classnames"; | |||||
| // @material-ui/core components | |||||
| import { makeStyles } from "@material-ui/core/styles"; | |||||
| // @material-ui/icons | |||||
| import Dashboard from "@material-ui/icons/Dashboard"; | |||||
| import LocalGroceryStoreIcon from "@material-ui/icons/LocalGroceryStore"; | |||||
| // Component | |||||
| import GridContainer from "components/Grid/GridContainer.js"; | |||||
| import GridItem from "components/Grid/GridItem.js"; | |||||
| import NavPills from "components/NavPills/NavPills.js"; | |||||
| import Card from "components/Card/Card.js"; | |||||
| import CardBody from "components/Card/CardBody.js"; | |||||
| import CardHeader from "components/Card/CardHeader.js"; | |||||
| import CardFooter from "components/Card/CardFooter.js"; | |||||
| import Button from "components/CustomButtons/Button.js"; | |||||
| import styles from "assets/jss/nextjs-material-kit/pages/profilePage.js"; | |||||
| const useStyles = makeStyles(styles); | |||||
| const Product = function ({ product, ...props }) { | |||||
| const classes = useStyles(); | |||||
| const { ...rest } = props; | |||||
| const imageClasses = classNames( | |||||
| classes.imgRaised, | |||||
| classes.imgRoundedCircle, | |||||
| classes.imgFluid | |||||
| ); | |||||
| const navImageClasses = classNames(classes.imgRounded, classes.imgGallery); | |||||
| return ( | |||||
| <Card className={classes.textCenter}> | |||||
| <div align="center"> | |||||
| <CardHeader color="info">Product</CardHeader> | |||||
| </div> | |||||
| <CardBody> | |||||
| <div align="center"> | |||||
| <h2>Product & Facilities</h2> | |||||
| </div> | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| <NavPills | |||||
| alignCenter | |||||
| color="primary" | |||||
| tabs={[ | |||||
| { | |||||
| tabButton: "Yamaha", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ height: "350px", display: "block" }} | |||||
| src="https://www.yamaha-motor.co.id/uploads/products/2020020510350637523I93808.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2><a href="/product_detail">ALL NEW NMAX STANDART VERSION</a></h2> | |||||
| <h4>Rp.30.000.000,00 – Rp.37.692.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ height: "350px", display: "block" }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Aerox-Std-Htm.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>AEROX 155 VVA</h2> | |||||
| <h4>Rp.25.927.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Aerox-R-Version.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>AEROX 155 VVA R – VERSION</h2> | |||||
| <h4>Rp.27.110.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Aerox-S-Ver-Red.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>AEROX 155 VVA S – VERSION</h2> | |||||
| <h4>Rp.29.744.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="https://i0.wp.com/warungasep.net/wp-content/uploads/2020/02/view-1.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>NMAX ABS / NON ABS 155</h2> | |||||
| <h4>Rp.29.571.000,00 – Rp.33.267.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Fino-Sporty-Blue-768x744.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>FINO 125 SPORTY / PREMIUM</h2> | |||||
| <h4>Rp.19.335.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Fino-Grande-Blue-768x744.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>FINO GRANDE 125</h2> | |||||
| <h4>Rp.20.155.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Mio-S-Green-768x703.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>MIO S</h2> | |||||
| <h4>Rp.18.472.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Mio-M3-CW-Black-768x649.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>NEW MIO M3 125 CW</h2> | |||||
| <h4>Rp.17.903.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ height: "350px", display: "block" }} | |||||
| src="https://motor.jasasitus.com/wp-content/uploads/2018/11/mio-m3-black.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>NEW MIO M3 AKS SSS</h2> | |||||
| <h4>Rp. 18.000.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ height: "350px", display: "block" }} | |||||
| src="https://yamaha-berlian-merdeka.com/wp-content/uploads/2018/12/5-1.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>ALL NEW X-RIDE 125</h2> | |||||
| <h4>Rp. 19.250.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="https://www.yamaha-motor.co.id/uploads/products/HqVh2xkCTQ2NsYoo3O0M.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>MIO Z</h2> | |||||
| <h4>Rp. 17.570.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ height: "350px", display: "block" }} | |||||
| src="https://image.cermati.com/v1553589176/f2xpfpfmjf2vnpoesrgf.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>MX KING 150</h2> | |||||
| <h4>Rp. 23.425.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ height: "350px", display: "block" }} | |||||
| src="https://www.yamaha-motor.co.id/uploads/products/ih2AfZY3h4qhAdKQonpJ.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>NEW JUPITER MX 150</h2> | |||||
| <h4>Rp. 20.825.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="https://d2pa5gi5n2e1an.cloudfront.net/id/images/article/10721_ID/2.jpg" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>JUPITER Z1</h2> | |||||
| <h4>Rp. 18.600.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="https://yamaha-deta.co.id/assets/themes/default/extra-images/detailproduk/ENERGETIC_WHITE.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h2>VEGA FORCE CW</h2> | |||||
| <h4>Rp. 16.825.000,00</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ height: "350px", display: "block" }} | |||||
| src="https://www.yamaha-motor.co.id/uploads/products/2020020510350637523I93808.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ height: "350px", display: "block" }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Aerox-Std-Htm.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Aerox-R-Version.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Aerox-S-Ver-Red.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="https://i0.wp.com/warungasep.net/wp-content/uploads/2020/02/view-1.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Fino-Sporty-Blue-768x744.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Fino-Grande-Blue-768x744.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Mio-S-Green-768x703.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| </GridItem> | |||||
| <GridItem xs={12} sm={12} md={4}> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ | |||||
| height: "350px", | |||||
| width: "100%", | |||||
| display: "block", | |||||
| }} | |||||
| src="http://automotive.thamrin.co.id/wp-content/uploads/2019/07/Mio-M3-CW-Black-768x649.png" | |||||
| className={navImageClasses} | |||||
| /> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Suzuki", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Honda", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Mercedes Benz", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| ]} | |||||
| /> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| </CardBody> | |||||
| <CardFooter className={classes.textMuted} textAlign="center"> | |||||
| © 2020 , All Right Reserved by @Thamrin Brother Company | |||||
| </CardFooter> | |||||
| </Card> | |||||
| ); | |||||
| } | |||||
| export default Product; | |||||
| @@ -1,192 +0,0 @@ | |||||
| import React from "react"; | |||||
| // nodejs library that concatenates classes | |||||
| import classNames from "classnames"; | |||||
| // @material-ui/core components | |||||
| import { makeStyles } from "@material-ui/core/styles"; | |||||
| // @material-ui/icons | |||||
| import Dashboard from "@material-ui/icons/Dashboard"; | |||||
| import LocalGroceryStoreIcon from "@material-ui/icons/LocalGroceryStore"; | |||||
| // Component | |||||
| import GridContainer from "components/Grid/GridContainer.js"; | |||||
| import Grid from '@material-ui/core/Grid'; | |||||
| import GridItem from "components/Grid/GridItem.js"; | |||||
| import NavPills from "components/NavPills/NavPills.js"; | |||||
| import Card from "components/Card/Card.js"; | |||||
| import CardBody from "components/Card/CardBody.js"; | |||||
| import CardHeader from "components/Card/CardHeader.js"; | |||||
| import CardFooter from "components/Card/CardFooter.js"; | |||||
| import Button from "components/CustomButtons/Button.js"; | |||||
| import styles from "assets/jss/nextjs-material-kit/pages/profilePage.js"; | |||||
| import Carousel from "react-slick"; | |||||
| import Paper from '@material-ui/core/Paper'; | |||||
| import image1 from "assets/img/bg.jpg"; | |||||
| import image2 from "assets/img/bg2.png"; | |||||
| import image3 from "assets/img/bg3.jpg"; | |||||
| const useStyles = makeStyles(styles); | |||||
| export default function ProfilePage(props) { | |||||
| const classes = useStyles(); | |||||
| const settings = { | |||||
| dots: true, | |||||
| infinite: true, | |||||
| speed: 500, | |||||
| slidesToShow: 1, | |||||
| slidesToScroll: 1, | |||||
| autoplay: false | |||||
| }; | |||||
| const navImageClasses = classNames(classes.imgRounded, classes.imgGallery); | |||||
| return ( | |||||
| <Card className={classes.textCenter}> | |||||
| <div align="center"> | |||||
| <CardHeader color="info">Product Detail</CardHeader> | |||||
| </div> | |||||
| <CardBody> | |||||
| <GridContainer justify="center"> | |||||
| <Grid align="center" className={classes.marginAuto}> | |||||
| <div className={classes.section}> | |||||
| <div className={classes.container}> | |||||
| <Card carousel style={{width:"700px", height:"400px"}}> | |||||
| <Carousel {...settings}> | |||||
| <div> | |||||
| <img src="https://www.yamaha-motor.co.id/uploads/products/2020020510350637523I93808.png" width="300px" height="400px" alt="First slide" className="slick-image" /> | |||||
| </div> | |||||
| <div> | |||||
| <img src={image2} alt="Second slide" className="slick-image"/> | |||||
| </div> | |||||
| <div> | |||||
| <img src={image3} alt="Third slide" className="slick-image" /> | |||||
| </div> | |||||
| </Carousel> | |||||
| </Card> | |||||
| </div> | |||||
| </div> | |||||
| </Grid> | |||||
| <Grid style={{padding:"40px", marginTop:"-30px"}}> | |||||
| <h3>ALL NEW NMAX STANDART VERSION</h3> | |||||
| <h3>Rp.37.692.000,00</h3> | |||||
| <hr></hr> | |||||
| <GridContainer justify="center"> | |||||
| <Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
| <Card className={classes.marginAuto} style={{height: "125px", width: "125px"}}> | |||||
| <img src="https://www.yamaha-motor.co.id/uploads/products/2zTfxFltlPOYe5sMFapR-BLUE-CORE-color.png" | |||||
| /> | |||||
| </Card> | |||||
| </Grid> | |||||
| <Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
| <Card className={classes.marginAuto} style={{height: "125px", width: "125px"}}> | |||||
| <img src="https://www.yamaha-motor.co.id/uploads/products/3JWFNLBpLj2ff7JgaSEC-VVA1.png" | |||||
| /> | |||||
| </Card> | |||||
| </Grid> | |||||
| <Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
| <Card className={classes.marginAuto} style={{height: "125px", width: "125px"}}> | |||||
| <img src="https://www.yamaha-motor.co.id/uploads/products/ku13WjySzEsj6LarGvlb-155-CC.png" | |||||
| /> | |||||
| </Card> | |||||
| </Grid> | |||||
| </GridContainer> | |||||
| <GridContainer justify="center"> | |||||
| <Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-50px"}}> | |||||
| <Card className={classes.marginAuto} style={{height: "125px", width: "125px"}}> | |||||
| <img src="https://www.yamaha-motor.co.id/uploads/products/20200402085616smc40j.png" | |||||
| /> | |||||
| </Card> | |||||
| </Grid> | |||||
| <Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-50px"}}> | |||||
| <Card className={classes.marginAuto} style={{height: "125px", width: "125px"}}> | |||||
| <img src="https://www.yamaha-motor.co.id/uploads/products/amoV2O00jXseztcZ8ilV-smg.png" | |||||
| /> | |||||
| </Card> | |||||
| </Grid> | |||||
| <Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-50px"}}> | |||||
| <Card className={classes.marginAuto} style={{height: "125px", width: "125px"}}> | |||||
| <img src="https://www.yamaha-motor.co.id/uploads/products/201912031806276ll9i9.png" | |||||
| /> | |||||
| </Card> | |||||
| </Grid> | |||||
| </GridContainer> | |||||
| </Grid> | |||||
| </GridContainer> | |||||
| <GridContainer style={{marginTop:"-80px"}}> | |||||
| <GridItem> | |||||
| <NavPills | |||||
| color="primary" | |||||
| tabs={[ | |||||
| { | |||||
| tabButton: "Overview", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Specification", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Accessories", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Film", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Credit Simulation", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Test Drive", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| ]} | |||||
| /> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| </CardBody> | |||||
| <CardFooter className={classes.textMuted} textAlign="center"> | |||||
| © 2020 , All Right Reserved by @Thamrin Brother Company | |||||
| </CardFooter> | |||||
| </Card> | |||||
| ); | |||||
| } | |||||
| @@ -14,13 +14,14 @@ const DataBusinessPartner = function ({ backend, businessPartners, ...props }) | |||||
| const classes = useStyles(); | const classes = useStyles(); | ||||
| const BusinessPartners = businessPartners.map((data) => { | const BusinessPartners = businessPartners.map((data) => { | ||||
| return ( | return ( | ||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| <Card style={{width: "20rem"}}> | <Card style={{width: "20rem"}}> | ||||
| <div align="center"> | <div align="center"> | ||||
| <img | <img | ||||
| style={{padding:"20px", height: "180px", width: "300px", display: "block"}} className={classes.imgCardTop} src={`${backend}${data.img[0]["url"]}`}/> | style={{padding:"20px", height: "180px", width: "300px", display: "block"}} className={classes.imgCardTop} src={`${backend}${data.img[0]["url"]}`}/> | ||||
| </div> | </div> | ||||
| {/* src={`${variablebackenduri}/${data.img[0]["url"]}`} */} | |||||
| </Card> | |||||
| </Card> | |||||
| </Grid> | |||||
| ); | ); | ||||
| }) | }) | ||||
| return ( | return ( | ||||
| @@ -30,21 +31,7 @@ const DataBusinessPartner = function ({ backend, businessPartners, ...props }) | |||||
| </div> | </div> | ||||
| <div> | <div> | ||||
| <GridContainer justify="center"> | <GridContainer justify="center"> | ||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| {BusinessPartners[0]} | |||||
| {BusinessPartners[3]} | |||||
| {BusinessPartners[6]} | |||||
| </Grid> | |||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| {BusinessPartners[1]} | |||||
| {BusinessPartners[4]} | |||||
| {BusinessPartners[7]} | |||||
| </Grid> | |||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| {BusinessPartners[2]} | |||||
| {BusinessPartners[5]} | |||||
| {BusinessPartners[8]} | |||||
| </Grid> | |||||
| {BusinessPartners} | |||||
| </GridContainer> | </GridContainer> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -13,12 +13,14 @@ const useStyles = makeStyles(styles); | |||||
| const DataService = function ({ backend, service, ...props }) { | const DataService = function ({ backend, service, ...props }) { | ||||
| const classes = useStyles(); | const classes = useStyles(); | ||||
| const services = service.map((data, index) => ( | const services = service.map((data, index) => ( | ||||
| <Card style={{width: "20rem"}}> | |||||
| <div align="center"> | |||||
| <img | |||||
| style={{height: "180px", width: "300px", display: "block"}} className={classes.imgCardTop} src={`${backend}${data.img[0]["url"]}`}/> | |||||
| </div> | |||||
| </Card> | |||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| <Card style={{width: "20rem"}}> | |||||
| <div align="center"> | |||||
| <img | |||||
| style={{height: "180px", width: "300px", display: "block"}} className={classes.imgCardTop} src={`${backend}${data.img[0]["url"]}`}/> | |||||
| </div> | |||||
| </Card> | |||||
| </Grid> | |||||
| )); | )); | ||||
| return ( | return ( | ||||
| <div className={classes.section} id="notifications"> | <div className={classes.section} id="notifications"> | ||||
| @@ -26,16 +28,8 @@ const DataService = function ({ backend, service, ...props }) { | |||||
| <h2>Our Service</h2> | <h2>Our Service</h2> | ||||
| </div> | </div> | ||||
| <div> | <div> | ||||
| <GridContainer justify="center"> | |||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| {services[0]} | |||||
| </Grid> | |||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| {services[1]} | |||||
| </Grid> | |||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| {services[2]} | |||||
| </Grid> | |||||
| <GridContainer style={{padding: "40px"}} justify="center"> | |||||
| {services} | |||||
| </GridContainer> | </GridContainer> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -19,6 +19,7 @@ const DataLatestNews = function ({ backend, news, ...props }) { | |||||
| const classes = useStyles(); | const classes = useStyles(); | ||||
| const latnews = news.map((data) => { | const latnews = news.map((data) => { | ||||
| return ( | return ( | ||||
| <Grid align="center" style={{padding:"30px", marginTop:"-50px"}}> | |||||
| <Card style={{width: "20rem"}}> | <Card style={{width: "20rem"}}> | ||||
| <img | <img | ||||
| style={{height: "180px", width: "100%", display: "block"}} | style={{height: "180px", width: "100%", display: "block"}} | ||||
| @@ -31,45 +32,35 @@ const DataLatestNews = function ({ backend, news, ...props }) { | |||||
| <Button color="info" onclick="myFunction()" id="myBtn">Read More</Button> | <Button color="info" onclick="myFunction()" id="myBtn">Read More</Button> | ||||
| </CardBody> | </CardBody> | ||||
| </Card> | </Card> | ||||
| </Grid> | |||||
| ); | ); | ||||
| }) | }) | ||||
| return ( | return ( | ||||
| <div className={classes.section} id="notifications"> | <div className={classes.section} id="notifications"> | ||||
| <div align="center"> | |||||
| <h2>Latest News</h2> | |||||
| </div> | |||||
| <div> | |||||
| <GridContainer justify="center"> | |||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| {latnews[0]} | |||||
| {latnews[1]} | |||||
| </Grid> | |||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| {latnews[2]} | |||||
| {latnews[3]} | |||||
| </Grid> | |||||
| <Grid align="center" style={{padding:"40px", marginTop:"-50px"}}> | |||||
| {latnews[4]} | |||||
| {latnews[5]} | |||||
| </Grid> | |||||
| </GridContainer> | |||||
| </div> | |||||
| <div align="center"> | |||||
| <Paginations | |||||
| color="info" | |||||
| pages={[ | |||||
| { text: 1 }, | |||||
| { text: "..." }, | |||||
| { text: 5 }, | |||||
| { text: 6 }, | |||||
| { active: true, text: 7 }, | |||||
| { text: 8 }, | |||||
| { text: 9 }, | |||||
| { text: "..." }, | |||||
| { text: 12 } | |||||
| ]} | |||||
| /> | |||||
| </div> | |||||
| <div align="center"> | |||||
| <h2>Latest News</h2> | |||||
| </div> | |||||
| <div> | |||||
| <GridContainer justify="center"> | |||||
| {latnews} | |||||
| </GridContainer> | |||||
| </div> | |||||
| <div align="center"> | |||||
| <Paginations | |||||
| color="info" | |||||
| pages={[ | |||||
| { text: 1 }, | |||||
| { text: "..." }, | |||||
| { text: 5 }, | |||||
| { text: 6 }, | |||||
| { active: true, text: 7 }, | |||||
| { text: 8 }, | |||||
| { text: 9 }, | |||||
| { text: "..." }, | |||||
| { text: 12 } | |||||
| ]} | |||||
| /> | |||||
| </div> | |||||
| </div> | </div> | ||||
| ); | ); | ||||
| } | } | ||||
| @@ -0,0 +1,115 @@ | |||||
| import React from "react"; | |||||
| // nodejs library that concatenates classes | |||||
| import classNames from "classnames"; | |||||
| // @material-ui/core components | |||||
| import { makeStyles } from "@material-ui/core/styles"; | |||||
| // @material-ui/icons | |||||
| import Dashboard from "@material-ui/icons/Dashboard"; | |||||
| import LocalGroceryStoreIcon from "@material-ui/icons/LocalGroceryStore"; | |||||
| // Component | |||||
| import GridContainer from "components/Grid/GridContainer.js"; | |||||
| import GridItem from "components/Grid/GridItem.js"; | |||||
| import NavPills from "components/NavPills/NavPills.js"; | |||||
| import Card from "components/Card/Card.js"; | |||||
| import CardBody from "components/Card/CardBody.js"; | |||||
| import CardHeader from "components/Card/CardHeader.js"; | |||||
| import CardFooter from "components/Card/CardFooter.js"; | |||||
| import Button from "components/CustomButtons/Button.js"; | |||||
| import styles from "assets/jss/nextjs-material-kit/pages/profilePage.js"; | |||||
| const useStyles = makeStyles(styles); | |||||
| const DataProduct = function ({ backend, product, ...props }) { | |||||
| const classes = useStyles(); | |||||
| const { ...rest } = props; | |||||
| const imageClasses = classNames( | |||||
| classes.imgRaised, | |||||
| classes.imgRoundedCircle, | |||||
| classes.imgFluid | |||||
| ); | |||||
| const navImageClasses = classNames(classes.imgRounded, classes.imgGallery); | |||||
| const Product = product.map((data) => { | |||||
| console.log(data); | |||||
| return ( | |||||
| <div> | |||||
| <img | |||||
| alt="..." | |||||
| style={{ height: "350px", display: "block" }} | |||||
| src={`${backend}${data.img[0]["url"]}`} | |||||
| className={navImageClasses} | |||||
| /> | |||||
| <div align="center"> | |||||
| <h3><a href={"/product_detail?a="+data.id}>{data.name}</a></h3> | |||||
| <h4>Rp.{data.price}</h4> | |||||
| <Button color="info" round> | |||||
| <LocalGroceryStoreIcon className={classes.icons} />{" "} | |||||
| Buy | |||||
| </Button> | |||||
| </div> | |||||
| </div> | |||||
| ); | |||||
| }) | |||||
| return ( | |||||
| <Card className={classes.textCenter}> | |||||
| <div align="center"> | |||||
| <CardHeader color="info">Product</CardHeader> | |||||
| </div> | |||||
| <CardBody> | |||||
| <div align="center"> | |||||
| <h2>Product & Facilities</h2> | |||||
| </div> | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| <NavPills | |||||
| alignCenter | |||||
| color="primary" | |||||
| tabs={[ | |||||
| { | |||||
| tabButton: "Yamaha", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| {Product} | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Suzuki", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| {Product} | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Honda", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Mercedes Benz", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| ]} | |||||
| /> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| </CardBody> | |||||
| </Card> | |||||
| ); | |||||
| } | |||||
| export default DataProduct; | |||||
| @@ -0,0 +1,152 @@ | |||||
| import React from "react"; | |||||
| // nodejs library that concatenates classes | |||||
| import classNames from "classnames"; | |||||
| // @material-ui/core components | |||||
| import { makeStyles } from "@material-ui/core/styles"; | |||||
| // @material-ui/icons | |||||
| import Dashboard from "@material-ui/icons/Dashboard"; | |||||
| import LocalGroceryStoreIcon from "@material-ui/icons/LocalGroceryStore"; | |||||
| // Component | |||||
| import GridContainer from "components/Grid/GridContainer.js"; | |||||
| import Grid from '@material-ui/core/Grid'; | |||||
| import GridItem from "components/Grid/GridItem.js"; | |||||
| import NavPills from "components/NavPills/NavPills.js"; | |||||
| import Card from "components/Card/Card.js"; | |||||
| import CardBody from "components/Card/CardBody.js"; | |||||
| import CardHeader from "components/Card/CardHeader.js"; | |||||
| import CardFooter from "components/Card/CardFooter.js"; | |||||
| import Button from "components/CustomButtons/Button.js"; | |||||
| import styles from "assets/jss/nextjs-material-kit/pages/profilePage.js"; | |||||
| import Carousel from "react-slick"; | |||||
| import Paper from '@material-ui/core/Paper'; | |||||
| import image1 from "assets/img/bg.jpg"; | |||||
| import image2 from "assets/img/bg2.png"; | |||||
| import image3 from "assets/img/bg3.jpg"; | |||||
| const useStyles = makeStyles(styles); | |||||
| const DataProduct = function ({ backend, detailproduct, ...props }) { | |||||
| const classes = useStyles(); | |||||
| const { ...rest } = props; | |||||
| const imageClasses = classNames( | |||||
| classes.imgRaised, | |||||
| classes.imgRoundedCircle, | |||||
| classes.imgFluid | |||||
| ); | |||||
| const navImageClasses = classNames(classes.imgRounded, classes.imgGallery); | |||||
| const Productdetails = detailproduct.map((data) => { | |||||
| console.log(data); | |||||
| return ( | |||||
| <GridContainer> | |||||
| <Grid> | |||||
| <div className={classes.section}> | |||||
| <div className={classes.container}> | |||||
| <Card style={{width:"500px", height:"400px"}}> | |||||
| <div> | |||||
| <img className={navImageClasses} width="300px" height="400px" alt="First slide" src={`${backend}${data.img[0]["url"]}`} /> | |||||
| </div> | |||||
| </Card> | |||||
| </div> | |||||
| </div> | |||||
| </Grid> | |||||
| <Grid style={{padding:"40px", marginTop:"-30px"}}> | |||||
| <h3>{data.name}</h3> | |||||
| <h3>Rp.{data.price}</h3> | |||||
| <hr></hr> | |||||
| </Grid> | |||||
| </GridContainer> | |||||
| ); | |||||
| }) | |||||
| return ( | |||||
| <Card className={classes.textCenter}> | |||||
| <div align="center"> | |||||
| <CardHeader color="info">Product Detail</CardHeader> | |||||
| </div> | |||||
| <CardBody> | |||||
| <div> | |||||
| {Productdetails[0]} | |||||
| </div> | |||||
| <GridContainer> | |||||
| <GridItem> | |||||
| <NavPills | |||||
| color="primary" | |||||
| tabs={[ | |||||
| { | |||||
| tabButton: "Overview", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Specification", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Accessories", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Film", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Credit Simulation", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| { | |||||
| tabButton: "Test Drive", | |||||
| tabIcon: Dashboard, | |||||
| tabContent: ( | |||||
| <GridContainer justify="center"> | |||||
| <GridItem> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| ), | |||||
| }, | |||||
| ]} | |||||
| /> | |||||
| </GridItem> | |||||
| </GridContainer> | |||||
| </CardBody> | |||||
| <CardFooter className={classes.textMuted} textAlign="center"> | |||||
| © 2020 , All Right Reserved by @Thamrin Brother Company | |||||
| </CardFooter> | |||||
| </Card> | |||||
| ); | |||||
| } | |||||
| export default DataProduct; | |||||
| @@ -17,7 +17,7 @@ const DataSnackbarContent = function() { | |||||
| <SnackbarContent | <SnackbarContent | ||||
| message={ | message={ | ||||
| <h4> | <h4> | ||||
| Thamrin Group bersama Anda melawan COVID-19. Untuk informasi silakan klik di sini. | |||||
| Thamrin Group bersama Anda melawan COVID-19. Untuk informasi silakan <a href="https://covid19.go.id/" target="_blank" className={classes.block}>klik di sini.</a> | |||||
| </h4> | </h4> | ||||
| } | } | ||||
| align="center" | align="center" | ||||
| @@ -3,7 +3,7 @@ import Router from "next/router"; | |||||
| export default class _error extends Component { | export default class _error extends Component { | ||||
| componentDidMount = () => { | componentDidMount = () => { | ||||
| Router.push("/components"); | |||||
| Router.push("/home"); | |||||
| }; | }; | ||||
| render() { | render() { | ||||
| @@ -0,0 +1,33 @@ | |||||
| import DetailProduct from "../../../api/product/product"; | |||||
| export default async function handler(req, res) { | |||||
| if (req.method == "POST") { | |||||
| var filterKey = req.body.filterKey; | |||||
| if (filterKey == "name") { | |||||
| var id = req.body.id; | |||||
| var name = req.body.name; | |||||
| var description = req.body.description; | |||||
| var price = req.body.price; | |||||
| var detailproduct = await DetailProduct.GetDetailProduct(id, name, description, price); | |||||
| if (detailproduct["STATUS"] == 0) { | |||||
| res.status(200).json(detailproduct); | |||||
| } else if (detailproduct["DATA"]["products"] == null) { | |||||
| res | |||||
| .status(200) | |||||
| .json({ | |||||
| STATUS: 0, | |||||
| DATA: "Product Tidak Ditemukan" | |||||
| }); | |||||
| } else { | |||||
| res.status(200).json({ | |||||
| STATUS: 1, | |||||
| DATA: detailproduct["DATA"]["products"], | |||||
| }); | |||||
| } | |||||
| } else { | |||||
| res.status(200).send("NOT FOUND"); | |||||
| } | |||||
| } else { | |||||
| res.status(200).send("NOT FOUND"); | |||||
| } | |||||
| } | |||||
| @@ -97,8 +97,6 @@ export async function getServerSideProps(context) { | |||||
| carousel = res["DATA"]["carousels"]; | carousel = res["DATA"]["carousels"]; | ||||
| } | } | ||||
| console.log(carousel); | |||||
| return { | return { | ||||
| props: { businessPartners, service, carousel, backend }, // will be passed to the page component as props | props: { businessPartners, service, carousel, backend }, // will be passed to the page component as props | ||||
| }; | }; | ||||
| @@ -3,7 +3,7 @@ import Router from "next/router"; | |||||
| export default class Index extends Component { | export default class Index extends Component { | ||||
| componentDidMount = () => { | componentDidMount = () => { | ||||
| Router.push("/components"); | |||||
| Router.push("/home"); | |||||
| }; | }; | ||||
| render() { | render() { | ||||
| @@ -12,7 +12,7 @@ import HeaderLinks from "components/Header/HeaderLinks.js"; | |||||
| import Footer from "components/Footer/Footer.js"; | import Footer from "components/Footer/Footer.js"; | ||||
| import GridContainer from "components/Grid/GridContainer.js"; | import GridContainer from "components/Grid/GridContainer.js"; | ||||
| import GridItem from "components/Grid/GridItem.js"; | import GridItem from "components/Grid/GridItem.js"; | ||||
| import SectionProduct from "pages-sections/SectionProduct.js"; | |||||
| import DataProduct from "pages-sections/product/product.js"; | |||||
| import Parallax from "components/Parallax/Parallax.js"; | import Parallax from "components/Parallax/Parallax.js"; | ||||
| import styles from "assets/jss/nextjs-material-kit/pages/components.js"; | import styles from "assets/jss/nextjs-material-kit/pages/components.js"; | ||||
| @@ -20,7 +20,7 @@ import Getproduct from "../api/product/product.js" | |||||
| const useStyles = makeStyles(styles); | const useStyles = makeStyles(styles); | ||||
| export default function Components(props) { | |||||
| const Product = function ({ backend, product, ...props }) { | |||||
| const classes = useStyles(); | const classes = useStyles(); | ||||
| const { ...rest } = props; | const { ...rest } = props; | ||||
| return ( | return ( | ||||
| @@ -50,15 +50,18 @@ export default function Components(props) { | |||||
| </div> | </div> | ||||
| </Parallax> | </Parallax> | ||||
| <div className={classNames(classes.main, classes.mainRaised)}> | <div className={classNames(classes.main, classes.mainRaised)}> | ||||
| <SectionProduct /> | |||||
| <DataProduct product={product} backend={backend}/> | |||||
| </div> | </div> | ||||
| <Footer /> | <Footer /> | ||||
| </div> | </div> | ||||
| ); | ); | ||||
| } | } | ||||
| export default Product; | |||||
| export async function getServerSideProps(context) { | export async function getServerSideProps(context) { | ||||
| var product = []; | var product = []; | ||||
| const backend = process.env.BACKEND_SERVER_URI; | |||||
| var res = await Getproduct.GetProduct(); | var res = await Getproduct.GetProduct(); | ||||
| if (res["STATUS"] === 1) { | if (res["STATUS"] === 1) { | ||||
| @@ -66,6 +69,6 @@ export async function getServerSideProps(context) { | |||||
| } | } | ||||
| return { | return { | ||||
| props: { product }, // will be passed to the page component as props | |||||
| props: { product, backend }, // will be passed to the page component as props | |||||
| }; | }; | ||||
| } | } | ||||
| @@ -12,13 +12,14 @@ import HeaderLinks from "components/Header/HeaderLinks.js"; | |||||
| import Footer from "components/Footer/Footer.js"; | import Footer from "components/Footer/Footer.js"; | ||||
| import GridContainer from "components/Grid/GridContainer.js"; | import GridContainer from "components/Grid/GridContainer.js"; | ||||
| import GridItem from "components/Grid/GridItem.js"; | import GridItem from "components/Grid/GridItem.js"; | ||||
| import SectionProductDetail from "pages-sections/Components-Sections/SectionProductDetail.js"; | |||||
| import ProductDetail from "pages-sections/product/product_details.js"; | |||||
| import Parallax from "components/Parallax/Parallax.js"; | import Parallax from "components/Parallax/Parallax.js"; | ||||
| import styles from "assets/jss/nextjs-material-kit/pages/components.js"; | import styles from "assets/jss/nextjs-material-kit/pages/components.js"; | ||||
| import GetDetailproduct from "../api/product/product.js" | |||||
| const useStyles = makeStyles(styles); | const useStyles = makeStyles(styles); | ||||
| export default function Components(props) { | |||||
| const ProductDetails = function ({ backend, detailproduct, ...props }) { | |||||
| const classes = useStyles(); | const classes = useStyles(); | ||||
| const { ...rest } = props; | const { ...rest } = props; | ||||
| return ( | return ( | ||||
| @@ -48,9 +49,27 @@ export default function Components(props) { | |||||
| </div> | </div> | ||||
| </Parallax> | </Parallax> | ||||
| <div className={classNames(classes.main, classes.mainRaised)}> | <div className={classNames(classes.main, classes.mainRaised)}> | ||||
| <SectionProductDetail /> | |||||
| <ProductDetail detailproduct={detailproduct} backend={backend}/> | |||||
| </div> | </div> | ||||
| <Footer /> | <Footer /> | ||||
| </div> | </div> | ||||
| ); | ); | ||||
| } | } | ||||
| export default ProductDetails; | |||||
| export async function getServerSideProps(context) { | |||||
| var detailproduct = []; | |||||
| const backend = process.env.BACKEND_SERVER_URI; | |||||
| var res = await GetDetailproduct.GetDetailProduct(); | |||||
| if (res["STATUS"] === 1) { | |||||
| detailproduct = res["DATA"]["products"]; | |||||
| } | |||||
| console.log(res); | |||||
| return { | |||||
| props: { detailproduct, backend }, // will be passed to the page component as props | |||||
| }; | |||||
| } | |||||