@@ -100,10 +100,45 @@ async function GetAccessories(token="") { | |||||
return res; | return res; | ||||
} | } | ||||
async function GetDetailAccessories(id, token="") { | |||||
var res = await apollo.query( | |||||
` | |||||
query($input: ID!){ | |||||
accessories(where:{id:$input}) | |||||
{ | |||||
id | |||||
name | |||||
description | |||||
price | |||||
part_code | |||||
img { | |||||
url | |||||
} | |||||
img_relate1{ | |||||
url | |||||
} | |||||
img_relate2{ | |||||
url | |||||
} | |||||
img_relate3{ | |||||
url | |||||
} | |||||
stock | |||||
} | |||||
} `, | |||||
token, | |||||
{ | |||||
"input": id | |||||
} | |||||
); | |||||
return res; | |||||
} | |||||
module.exports = { | module.exports = { | ||||
GetYGP:GetYGP, | GetYGP:GetYGP, | ||||
GetYamalube:GetYamalube, | GetYamalube:GetYamalube, | ||||
GetHelmet:GetHelmet, | GetHelmet:GetHelmet, | ||||
GetApparel:GetApparel, | GetApparel:GetApparel, | ||||
GetAccessories:GetAccessories, | GetAccessories:GetAccessories, | ||||
GetDetailAccessories:GetDetailAccessories, | |||||
}; | }; |
@@ -36,7 +36,7 @@ const DataAccessories = function ({ backend, accessories, ...props }) { | |||||
<h4>Rp.{data.price}</h4> | <h4>Rp.{data.price}</h4> | ||||
<Button | <Button | ||||
color="info" round | color="info" round | ||||
href={"/product_detail?s="+data.id} | |||||
href={"/product/accessories_details?s="+data.id} | |||||
> | > | ||||
<Icon className={classes.icons}>open_in_new</Icon>Detail Product | <Icon className={classes.icons}>open_in_new</Icon>Detail Product | ||||
</Button> | </Button> | ||||
@@ -0,0 +1,109 @@ | |||||
import React, { useState, useEffect } from "react"; | |||||
import classNames from "classnames"; | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import ReactHtmlParser from "react-html-parser"; | |||||
import Dashboard from "@material-ui/icons/Dashboard"; | |||||
import Icon from "@material-ui/core/Icon"; | |||||
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"; | |||||
const useStyles = makeStyles(styles); | |||||
const DetailDataAccessories = function ({ backend, detailaccessories, ...props }) { | |||||
const classes = useStyles(); | |||||
const { ...rest } = props; | |||||
const imageClasses = classNames( | |||||
classes.imgRaised, | |||||
classes.imgRoundedCircle, | |||||
classes.imgFluid | |||||
); | |||||
const settings = { | |||||
dots: true, | |||||
infinite: true, | |||||
speed: 500, | |||||
slidesToShow: 1, | |||||
slidesToScroll: 1, | |||||
autoplay: true, | |||||
time: 5 | |||||
}; | |||||
const navImageClasses = classNames(classes.imgRounded, classes.imgGallery); | |||||
const Accessoriesdetails = detailaccessories.map((data) => { | |||||
return ( | |||||
<div> | |||||
<GridContainer> | |||||
<Grid fluid xs={5}> | |||||
<div className={classes.section} id="notifications"> | |||||
<div className={classes.section}> | |||||
<div className={classes.container}> | |||||
<GridContainer> | |||||
<GridItem className={classes.marginAuto}> | |||||
<Card carousel> | |||||
<Carousel {...settings}> | |||||
<img className={navImageClasses} width="300px" alt="First slide" src={`${backend}${data.img["url"]}`} /> | |||||
</Carousel> | |||||
</Card> | |||||
</GridItem> | |||||
</GridContainer> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</Grid> | |||||
<Grid xs={7} style={{padding:"40px", marginTop:"-30px"}}> | |||||
<h3>{data.name}</h3> | |||||
<h3>Rp.{data.price}</h3> | |||||
<hr></hr> | |||||
<ul> | |||||
<li><h4>Stock : {data.stock}</h4></li> | |||||
<li><h4>Part Code : {data.part_code}</h4></li> | |||||
</ul> | |||||
</Grid> | |||||
</GridContainer> | |||||
<GridContainer> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
</GridContainer> | |||||
<div align="center"> | |||||
<hr></hr> | |||||
<h2>Deskripsi</h2> | |||||
</div> | |||||
<div align="justify"> | |||||
<p>{ReactHtmlParser(data.description)}</p> | |||||
</div> | |||||
</div> | |||||
); | |||||
}) | |||||
return ( | |||||
<Card className={classes.textCenter}> | |||||
<div align="center"> | |||||
<CardHeader color="info">Product Detail</CardHeader> | |||||
</div> | |||||
<CardBody> | |||||
<div> | |||||
{Accessoriesdetails} | |||||
</div> | |||||
</CardBody> | |||||
<CardFooter className={classes.textMuted} textAlign="center"> | |||||
© 2020 , All Right Reserved by @Thamrin Brother Company | |||||
</CardFooter> | |||||
</Card> | |||||
); | |||||
} | |||||
export default DetailDataAccessories; |
@@ -35,7 +35,7 @@ const DataApparel = function ({ backend, apparel, ...props }) { | |||||
<h4>Rp.{data.price}</h4> | <h4>Rp.{data.price}</h4> | ||||
<Button | <Button | ||||
color="info" round | color="info" round | ||||
href={"/product_detail?s="+data.id} | |||||
href={"/product/apparel_details?s="+data.id} | |||||
> | > | ||||
<Icon className={classes.icons}>open_in_new</Icon>Detail Product | <Icon className={classes.icons}>open_in_new</Icon>Detail Product | ||||
</Button> | </Button> | ||||
@@ -0,0 +1,109 @@ | |||||
import React, { useState, useEffect } from "react"; | |||||
import classNames from "classnames"; | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import ReactHtmlParser from "react-html-parser"; | |||||
import Dashboard from "@material-ui/icons/Dashboard"; | |||||
import Icon from "@material-ui/core/Icon"; | |||||
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"; | |||||
const useStyles = makeStyles(styles); | |||||
const DetailDataApparel = function ({ backend, detailapparel, ...props }) { | |||||
const classes = useStyles(); | |||||
const { ...rest } = props; | |||||
const imageClasses = classNames( | |||||
classes.imgRaised, | |||||
classes.imgRoundedCircle, | |||||
classes.imgFluid | |||||
); | |||||
const settings = { | |||||
dots: true, | |||||
infinite: true, | |||||
speed: 500, | |||||
slidesToShow: 1, | |||||
slidesToScroll: 1, | |||||
autoplay: true, | |||||
time: 5 | |||||
}; | |||||
const navImageClasses = classNames(classes.imgRounded, classes.imgGallery); | |||||
const Appareldetails = detailapparel.map((data) => { | |||||
return ( | |||||
<div> | |||||
<GridContainer> | |||||
<Grid fluid xs={5}> | |||||
<div className={classes.section} id="notifications"> | |||||
<div className={classes.section}> | |||||
<div className={classes.container}> | |||||
<GridContainer> | |||||
<GridItem className={classes.marginAuto}> | |||||
<Card carousel> | |||||
<Carousel {...settings}> | |||||
<img className={navImageClasses} width="300px" alt="First slide" src={`${backend}${data.img["url"]}`} /> | |||||
</Carousel> | |||||
</Card> | |||||
</GridItem> | |||||
</GridContainer> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</Grid> | |||||
<Grid xs={7} style={{padding:"40px", marginTop:"-30px"}}> | |||||
<h3>{data.name}</h3> | |||||
<h3>Rp.{data.price}</h3> | |||||
<hr></hr> | |||||
<ul> | |||||
<li><h4>Stock : {data.stock}</h4></li> | |||||
<li><h4>Part Code : {data.part_code}</h4></li> | |||||
</ul> | |||||
</Grid> | |||||
</GridContainer> | |||||
<GridContainer> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
</GridContainer> | |||||
<div align="center"> | |||||
<hr></hr> | |||||
<h2>Deskripsi</h2> | |||||
</div> | |||||
<div align="justify"> | |||||
<p>{ReactHtmlParser(data.description)}</p> | |||||
</div> | |||||
</div> | |||||
); | |||||
}) | |||||
return ( | |||||
<Card className={classes.textCenter}> | |||||
<div align="center"> | |||||
<CardHeader color="info">Product Detail</CardHeader> | |||||
</div> | |||||
<CardBody> | |||||
<div> | |||||
{Appareldetails} | |||||
</div> | |||||
</CardBody> | |||||
<CardFooter className={classes.textMuted} textAlign="center"> | |||||
© 2020 , All Right Reserved by @Thamrin Brother Company | |||||
</CardFooter> | |||||
</Card> | |||||
); | |||||
} | |||||
export default DetailDataApparel; |
@@ -35,7 +35,7 @@ const DataHelmet = function ({ backend, helmet, ...props }) { | |||||
<h4>Rp.{data.price}</h4> | <h4>Rp.{data.price}</h4> | ||||
<Button | <Button | ||||
color="info" round | color="info" round | ||||
href={"/product_detail?s="+data.id} | |||||
href={"/product/helmet_details?s="+data.id} | |||||
> | > | ||||
<Icon className={classes.icons}>open_in_new</Icon>Detail Product | <Icon className={classes.icons}>open_in_new</Icon>Detail Product | ||||
</Button> | </Button> | ||||
@@ -0,0 +1,109 @@ | |||||
import React, { useState, useEffect } from "react"; | |||||
import classNames from "classnames"; | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import ReactHtmlParser from "react-html-parser"; | |||||
import Dashboard from "@material-ui/icons/Dashboard"; | |||||
import Icon from "@material-ui/core/Icon"; | |||||
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"; | |||||
const useStyles = makeStyles(styles); | |||||
const DetailDataHelmet = function ({ backend, detailhelmet, ...props }) { | |||||
const classes = useStyles(); | |||||
const { ...rest } = props; | |||||
const imageClasses = classNames( | |||||
classes.imgRaised, | |||||
classes.imgRoundedCircle, | |||||
classes.imgFluid | |||||
); | |||||
const settings = { | |||||
dots: true, | |||||
infinite: true, | |||||
speed: 500, | |||||
slidesToShow: 1, | |||||
slidesToScroll: 1, | |||||
autoplay: true, | |||||
time: 5 | |||||
}; | |||||
const navImageClasses = classNames(classes.imgRounded, classes.imgGallery); | |||||
const Helmetdetails = detailhelmet.map((data) => { | |||||
return ( | |||||
<div> | |||||
<GridContainer> | |||||
<Grid fluid xs={5}> | |||||
<div className={classes.section} id="notifications"> | |||||
<div className={classes.section}> | |||||
<div className={classes.container}> | |||||
<GridContainer> | |||||
<GridItem className={classes.marginAuto}> | |||||
<Card carousel> | |||||
<Carousel {...settings}> | |||||
<img className={navImageClasses} width="300px" alt="First slide" src={`${backend}${data.img["url"]}`} /> | |||||
</Carousel> | |||||
</Card> | |||||
</GridItem> | |||||
</GridContainer> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</Grid> | |||||
<Grid xs={7} style={{padding:"40px", marginTop:"-30px"}}> | |||||
<h3>{data.name}</h3> | |||||
<h3>Rp.{data.price}</h3> | |||||
<hr></hr> | |||||
<ul> | |||||
<li><h4>Stock : {data.stock}</h4></li> | |||||
<li><h4>Part Code : {data.part_code}</h4></li> | |||||
</ul> | |||||
</Grid> | |||||
</GridContainer> | |||||
<GridContainer> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
</GridContainer> | |||||
<div align="center"> | |||||
<hr></hr> | |||||
<h2>Deskripsi</h2> | |||||
</div> | |||||
<div align="justify"> | |||||
<p>{ReactHtmlParser(data.description)}</p> | |||||
</div> | |||||
</div> | |||||
); | |||||
}) | |||||
return ( | |||||
<Card className={classes.textCenter}> | |||||
<div align="center"> | |||||
<CardHeader color="info">Product Detail</CardHeader> | |||||
</div> | |||||
<CardBody> | |||||
<div> | |||||
{Helmetdetails} | |||||
</div> | |||||
</CardBody> | |||||
<CardFooter className={classes.textMuted} textAlign="center"> | |||||
© 2020 , All Right Reserved by @Thamrin Brother Company | |||||
</CardFooter> | |||||
</Card> | |||||
); | |||||
} | |||||
export default DetailDataHelmet; |
@@ -35,7 +35,7 @@ const DataYamalube = function ({ backend, yamalube, ...props }) { | |||||
<h4>Rp.{data.price}</h4> | <h4>Rp.{data.price}</h4> | ||||
<Button | <Button | ||||
color="info" round | color="info" round | ||||
href={"/product_detail?s="+data.id} | |||||
href={"/product/yamalube_details?s="+data.id} | |||||
> | > | ||||
<Icon className={classes.icons}>open_in_new</Icon>Detail Product | <Icon className={classes.icons}>open_in_new</Icon>Detail Product | ||||
</Button> | </Button> | ||||
@@ -0,0 +1,109 @@ | |||||
import React, { useState, useEffect } from "react"; | |||||
import classNames from "classnames"; | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import ReactHtmlParser from "react-html-parser"; | |||||
import Dashboard from "@material-ui/icons/Dashboard"; | |||||
import Icon from "@material-ui/core/Icon"; | |||||
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"; | |||||
const useStyles = makeStyles(styles); | |||||
const DetailDataYamalube = function ({ backend, detailyamalube, ...props }) { | |||||
const classes = useStyles(); | |||||
const { ...rest } = props; | |||||
const imageClasses = classNames( | |||||
classes.imgRaised, | |||||
classes.imgRoundedCircle, | |||||
classes.imgFluid | |||||
); | |||||
const settings = { | |||||
dots: true, | |||||
infinite: true, | |||||
speed: 500, | |||||
slidesToShow: 1, | |||||
slidesToScroll: 1, | |||||
autoplay: true, | |||||
time: 5 | |||||
}; | |||||
const navImageClasses = classNames(classes.imgRounded, classes.imgGallery); | |||||
const Yamalubedetails = detailyamalube.map((data) => { | |||||
return ( | |||||
<div> | |||||
<GridContainer> | |||||
<Grid fluid xs={5}> | |||||
<div className={classes.section} id="notifications"> | |||||
<div className={classes.section}> | |||||
<div className={classes.container}> | |||||
<GridContainer> | |||||
<GridItem className={classes.marginAuto}> | |||||
<Card carousel> | |||||
<Carousel {...settings}> | |||||
<img className={navImageClasses} width="300px" alt="First slide" src={`${backend}${data.img["url"]}`} /> | |||||
</Carousel> | |||||
</Card> | |||||
</GridItem> | |||||
</GridContainer> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</Grid> | |||||
<Grid xs={7} style={{padding:"40px", marginTop:"-30px"}}> | |||||
<h3>{data.name}</h3> | |||||
<h3>Rp.{data.price}</h3> | |||||
<hr></hr> | |||||
<ul> | |||||
<li><h4>Stock : {data.stock}</h4></li> | |||||
<li><h4>Part Code : {data.part_code}</h4></li> | |||||
</ul> | |||||
</Grid> | |||||
</GridContainer> | |||||
{/* <GridContainer> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img_relate1["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img_relate2["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
<Grid className={classes.marginAuto} style={{padding:"10px", marginTop:"-30px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img_relate3["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
</GridContainer> */} | |||||
<div align="center"> | |||||
<hr></hr> | |||||
<h2>Deskripsi</h2> | |||||
</div> | |||||
<div align="justify"> | |||||
<p>{ReactHtmlParser(data.description)}</p> | |||||
</div> | |||||
</div> | |||||
); | |||||
}) | |||||
return ( | |||||
<Card className={classes.textCenter}> | |||||
<div align="center"> | |||||
<CardHeader color="info">Product Detail</CardHeader> | |||||
</div> | |||||
<CardBody> | |||||
<div> | |||||
{Yamalubedetails} | |||||
</div> | |||||
</CardBody> | |||||
<CardFooter className={classes.textMuted} textAlign="center"> | |||||
© 2020 , All Right Reserved by @Thamrin Brother Company | |||||
</CardFooter> | |||||
</Card> | |||||
); | |||||
} | |||||
export default DetailDataYamalube; |
@@ -35,7 +35,7 @@ const DataYGP = function ({ backend, ygp, ...props }) { | |||||
<h4>Rp.{data.price}</h4> | <h4>Rp.{data.price}</h4> | ||||
<Button | <Button | ||||
color="info" round | color="info" round | ||||
href={"/product_detail?s="+data.id} | |||||
href={"/product/ygp_details?s="+data.id} | |||||
> | > | ||||
<Icon className={classes.icons}>open_in_new</Icon>Detail Product | <Icon className={classes.icons}>open_in_new</Icon>Detail Product | ||||
</Button> | </Button> | ||||
@@ -0,0 +1,97 @@ | |||||
import React, { useState, useEffect } from "react"; | |||||
import classNames from "classnames"; | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import ReactHtmlParser from "react-html-parser"; | |||||
import Dashboard from "@material-ui/icons/Dashboard"; | |||||
import Icon from "@material-ui/core/Icon"; | |||||
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"; | |||||
const useStyles = makeStyles(styles); | |||||
const DetailDataYGP = function ({ backend, detailygp, ...props }) { | |||||
const classes = useStyles(); | |||||
const { ...rest } = props; | |||||
const imageClasses = classNames( | |||||
classes.imgRaised, | |||||
classes.imgRoundedCircle, | |||||
classes.imgFluid | |||||
); | |||||
const navImageClasses = classNames(classes.imgRounded, classes.imgGallery); | |||||
const YGPdetails = detailygp.map((data) => { | |||||
return ( | |||||
<div> | |||||
<GridContainer> | |||||
<Grid fluid xs={5}> | |||||
<div className={classes.section} id="notifications"> | |||||
<div className={classes.section}> | |||||
<div className={classes.container}> | |||||
<GridContainer> | |||||
<GridItem className={classes.marginAuto}> | |||||
<Card> | |||||
<img className={navImageClasses} width="300px" alt="First slide" src={`${backend}${data.img["url"]}`} /> | |||||
</Card> | |||||
</GridItem> | |||||
</GridContainer> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</Grid> | |||||
<Grid xs={7} style={{padding:"40px", marginTop:"-30px"}}> | |||||
<h3>{data.name}</h3> | |||||
<h3>Rp.{data.price}</h3> | |||||
<hr></hr> | |||||
<ul> | |||||
<li><h4>Stock : {data.stock}</h4></li> | |||||
<li><h4>Part Code : {data.part_code}</h4></li> | |||||
</ul> | |||||
</Grid> | |||||
</GridContainer> | |||||
<GridContainer> | |||||
<Grid className={classes.marginAuto} style={{padding:"11px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img_relate1["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
<Grid className={classes.marginAuto} style={{padding:"11px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img_relate2["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
<Grid className={classes.marginAuto} style={{padding:"11px"}}> | |||||
<img className={navImageClasses} src={`${backend}${data.img_relate3["url"]}`} height="165px" width="200px"/> | |||||
</Grid> | |||||
</GridContainer> | |||||
<div align="center"> | |||||
<hr></hr> | |||||
<h2>Deskripsi</h2> | |||||
</div> | |||||
<div align="justify"> | |||||
<p>{ReactHtmlParser(data.description)}</p> | |||||
</div> | |||||
</div> | |||||
); | |||||
}) | |||||
return ( | |||||
<Card className={classes.textCenter}> | |||||
<div align="center"> | |||||
<CardHeader color="info">Product Detail</CardHeader> | |||||
</div> | |||||
<CardBody> | |||||
<div> | |||||
{YGPdetails} | |||||
</div> | |||||
</CardBody> | |||||
<CardFooter className={classes.textMuted} textAlign="center"> | |||||
© 2020 , All Right Reserved by @Thamrin Brother Company | |||||
</CardFooter> | |||||
</Card> | |||||
); | |||||
} | |||||
export default DetailDataYGP; |
@@ -0,0 +1,55 @@ | |||||
import React from "react"; | |||||
import classNames from "classnames"; | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import Header from "components/Header/Header.js"; | |||||
import HeaderLinks from "components/Header/HeaderLinks.js"; | |||||
import Footer from "components/Footer/Footer.js"; | |||||
import AccessoriesDetail from "pages-sections/product/accessories_details.js"; | |||||
import Parallax from "components/Parallax/Parallax.js"; | |||||
import styles from "assets/jss/nextjs-material-kit/pages/components.js"; | |||||
import GetDetailAccessories from "../../api/product/accessories.js" | |||||
const useStyles = makeStyles(styles); | |||||
const AccessoriesDetails = function ({ backend, detailaccessories, ...props }) { | |||||
const classes = useStyles(); | |||||
const { ...rest } = props; | |||||
return ( | |||||
<div> | |||||
<Header | |||||
rightLinks={<HeaderLinks/>} | |||||
fixed | |||||
color="info" | |||||
changeColorOnScroll={{ | |||||
height: 400, | |||||
color: "white" | |||||
}} | |||||
{...rest} | |||||
/> | |||||
<Parallax image={require("assets/img/yamalube.jpg")} width="200px"/> | |||||
<div className={classNames(classes.main, classes.mainRaised)}> | |||||
<AccessoriesDetail detailaccessories={detailaccessories} backend={backend}/> | |||||
</div> | |||||
<Footer /> | |||||
</div> | |||||
); | |||||
} | |||||
export default AccessoriesDetails; | |||||
export async function getServerSideProps(context) { | |||||
var {query} = context; | |||||
var detailaccessories = []; | |||||
const backend = process.env.BACKEND_SERVER_URI; | |||||
var res = await GetDetailAccessories.GetDetailAccessories(query.s||0); | |||||
if (res["STATUS"] === 1) { | |||||
detailaccessories = res["DATA"]["accessories"]; | |||||
} | |||||
console.log(detailaccessories); | |||||
return { | |||||
props: { detailaccessories, backend }, // will be passed to the page component as props | |||||
}; | |||||
} |
@@ -0,0 +1,55 @@ | |||||
import React from "react"; | |||||
import classNames from "classnames"; | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import Header from "components/Header/Header.js"; | |||||
import HeaderLinks from "components/Header/HeaderLinks.js"; | |||||
import Footer from "components/Footer/Footer.js"; | |||||
import ApparelDetail from "pages-sections/product/apparel_details.js"; | |||||
import Parallax from "components/Parallax/Parallax.js"; | |||||
import styles from "assets/jss/nextjs-material-kit/pages/components.js"; | |||||
import GetDetailApparel from "../../api/product/accessories.js" | |||||
const useStyles = makeStyles(styles); | |||||
const ApparelDetails = function ({ backend, detailapparel, ...props }) { | |||||
const classes = useStyles(); | |||||
const { ...rest } = props; | |||||
return ( | |||||
<div> | |||||
<Header | |||||
rightLinks={<HeaderLinks/>} | |||||
fixed | |||||
color="info" | |||||
changeColorOnScroll={{ | |||||
height: 400, | |||||
color: "white" | |||||
}} | |||||
{...rest} | |||||
/> | |||||
<Parallax image={require("assets/img/yamalube.jpg")} width="200px"/> | |||||
<div className={classNames(classes.main, classes.mainRaised)}> | |||||
<ApparelDetail detailapparel={detailapparel} backend={backend}/> | |||||
</div> | |||||
<Footer /> | |||||
</div> | |||||
); | |||||
} | |||||
export default ApparelDetails; | |||||
export async function getServerSideProps(context) { | |||||
var {query} = context; | |||||
var detailapparel = []; | |||||
const backend = process.env.BACKEND_SERVER_URI; | |||||
var res = await GetDetailApparel.GetDetailAccessories(query.s||0); | |||||
if (res["STATUS"] === 1) { | |||||
detailapparel = res["DATA"]["accessories"]; | |||||
} | |||||
console.log(detailapparel); | |||||
return { | |||||
props: { detailapparel, backend }, // will be passed to the page component as props | |||||
}; | |||||
} |
@@ -0,0 +1,55 @@ | |||||
import React from "react"; | |||||
import classNames from "classnames"; | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import Header from "components/Header/Header.js"; | |||||
import HeaderLinks from "components/Header/HeaderLinks.js"; | |||||
import Footer from "components/Footer/Footer.js"; | |||||
import HelmetDetail from "pages-sections/product/helmet_details.js"; | |||||
import Parallax from "components/Parallax/Parallax.js"; | |||||
import styles from "assets/jss/nextjs-material-kit/pages/components.js"; | |||||
import GetDetailHelmet from "../../api/product/accessories.js" | |||||
const useStyles = makeStyles(styles); | |||||
const HelmetDetails = function ({ backend, detailhelmet, ...props }) { | |||||
const classes = useStyles(); | |||||
const { ...rest } = props; | |||||
return ( | |||||
<div> | |||||
<Header | |||||
rightLinks={<HeaderLinks/>} | |||||
fixed | |||||
color="info" | |||||
changeColorOnScroll={{ | |||||
height: 400, | |||||
color: "white" | |||||
}} | |||||
{...rest} | |||||
/> | |||||
<Parallax image={require("assets/img/yamalube.jpg")} width="200px"/> | |||||
<div className={classNames(classes.main, classes.mainRaised)}> | |||||
<HelmetDetail detailhelmet={detailhelmet} backend={backend}/> | |||||
</div> | |||||
<Footer /> | |||||
</div> | |||||
); | |||||
} | |||||
export default HelmetDetails; | |||||
export async function getServerSideProps(context) { | |||||
var {query} = context; | |||||
var detailhelmet = []; | |||||
const backend = process.env.BACKEND_SERVER_URI; | |||||
var res = await GetDetailHelmet.GetDetailAccessories(query.s||0); | |||||
if (res["STATUS"] === 1) { | |||||
detailhelmet = res["DATA"]["accessories"]; | |||||
} | |||||
console.log(detailhelmet); | |||||
return { | |||||
props: { detailhelmet, backend }, // will be passed to the page component as props | |||||
}; | |||||
} |
@@ -0,0 +1,55 @@ | |||||
import React from "react"; | |||||
import classNames from "classnames"; | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import Header from "components/Header/Header.js"; | |||||
import HeaderLinks from "components/Header/HeaderLinks.js"; | |||||
import Footer from "components/Footer/Footer.js"; | |||||
import YamalubeDetail from "pages-sections/product/yamalube_details.js"; | |||||
import Parallax from "components/Parallax/Parallax.js"; | |||||
import styles from "assets/jss/nextjs-material-kit/pages/components.js"; | |||||
import GetDetailYamalube from "../../api/product/accessories.js" | |||||
const useStyles = makeStyles(styles); | |||||
const YamalubeDetails = function ({ backend, detailyamalube, ...props }) { | |||||
const classes = useStyles(); | |||||
const { ...rest } = props; | |||||
return ( | |||||
<div> | |||||
<Header | |||||
rightLinks={<HeaderLinks/>} | |||||
fixed | |||||
color="info" | |||||
changeColorOnScroll={{ | |||||
height: 400, | |||||
color: "white" | |||||
}} | |||||
{...rest} | |||||
/> | |||||
<Parallax image={require("assets/img/yamalube.jpg")} width="200px"/> | |||||
<div className={classNames(classes.main, classes.mainRaised)}> | |||||
<YamalubeDetail detailyamalube={detailyamalube} backend={backend}/> | |||||
</div> | |||||
<Footer /> | |||||
</div> | |||||
); | |||||
} | |||||
export default YamalubeDetails; | |||||
export async function getServerSideProps(context) { | |||||
var {query} = context; | |||||
var detailyamalube = []; | |||||
const backend = process.env.BACKEND_SERVER_URI; | |||||
var res = await GetDetailYamalube.GetDetailAccessories(query.s||0); | |||||
if (res["STATUS"] === 1) { | |||||
detailyamalube = res["DATA"]["accessories"]; | |||||
} | |||||
console.log(detailyamalube); | |||||
return { | |||||
props: { detailyamalube, backend }, // will be passed to the page component as props | |||||
}; | |||||
} |
@@ -0,0 +1,55 @@ | |||||
import React from "react"; | |||||
import classNames from "classnames"; | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import Header from "components/Header/Header.js"; | |||||
import HeaderLinks from "components/Header/HeaderLinks.js"; | |||||
import Footer from "components/Footer/Footer.js"; | |||||
import YGPDetail from "pages-sections/product/ygp_details.js"; | |||||
import Parallax from "components/Parallax/Parallax.js"; | |||||
import styles from "assets/jss/nextjs-material-kit/pages/components.js"; | |||||
import GetDetailYGP from "../../api/product/accessories.js" | |||||
const useStyles = makeStyles(styles); | |||||
const YGPDetails = function ({ backend, detailygp, ...props }) { | |||||
const classes = useStyles(); | |||||
const { ...rest } = props; | |||||
return ( | |||||
<div> | |||||
<Header | |||||
rightLinks={<HeaderLinks/>} | |||||
fixed | |||||
color="info" | |||||
changeColorOnScroll={{ | |||||
height: 400, | |||||
color: "white" | |||||
}} | |||||
{...rest} | |||||
/> | |||||
<Parallax image={require("assets/img/yamalube.jpg")} width="200px"/> | |||||
<div className={classNames(classes.main, classes.mainRaised)}> | |||||
<YGPDetail detailygp={detailygp} backend={backend}/> | |||||
</div> | |||||
<Footer /> | |||||
</div> | |||||
); | |||||
} | |||||
export default YGPDetails; | |||||
export async function getServerSideProps(context) { | |||||
var {query} = context; | |||||
var detailygp = []; | |||||
const backend = process.env.BACKEND_SERVER_URI; | |||||
var res = await GetDetailYGP.GetDetailAccessories(query.s||0); | |||||
if (res["STATUS"] === 1) { | |||||
detailygp = res["DATA"]["accessories"]; | |||||
} | |||||
console.log(detailygp); | |||||
return { | |||||
props: { detailygp, backend }, // will be passed to the page component as props | |||||
}; | |||||
} |