Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

157 linhas
5.8 KiB

  1. import React from "react";
  2. import classNames from "classnames";
  3. import { makeStyles } from "@material-ui/core/styles";
  4. import ReactHtmlParser from "react-html-parser";
  5. import Dashboard from "@material-ui/icons/Dashboard";
  6. import Icon from "@material-ui/core/Icon";
  7. import GridContainer from "components/Grid/GridContainer.js";
  8. import Grid from '@material-ui/core/Grid';
  9. import GridItem from "components/Grid/GridItem.js";
  10. import NavPills from "components/NavPills/NavPills.js";
  11. import Card from "components/Card/Card.js";
  12. import CardBody from "components/Card/CardBody.js";
  13. import CardHeader from "components/Card/CardHeader.js";
  14. import CardFooter from "components/Card/CardFooter.js";
  15. import Button from "components/CustomButtons/Button.js";
  16. import styles from "assets/jss/nextjs-material-kit/pages/profilePage.js";
  17. import Carousel from "react-slick";
  18. const useStyles = makeStyles(styles);
  19. const DataProduct = function ({ backend, detailproduct, ...props }) {
  20. const classes = useStyles();
  21. const { ...rest } = props;
  22. const imageClasses = classNames(
  23. classes.imgRaised,
  24. classes.imgRoundedCircle,
  25. classes.imgFluid
  26. );
  27. const settings = {
  28. dots: true,
  29. infinite: true,
  30. speed: 500,
  31. slidesToShow: 1,
  32. slidesToScroll: 1,
  33. autoplay: true,
  34. time: 5
  35. };
  36. const navImageClasses = classNames(classes.imgRounded, classes.imgGallery);
  37. const Productdetails = detailproduct.map((data) => {
  38. return (
  39. <div>
  40. <GridContainer>
  41. <Grid fluid xs={5}>
  42. <div className={classes.section} id="notifications">
  43. <div className={classes.section}>
  44. <div className={classes.container}>
  45. <GridContainer>
  46. <GridItem className={classes.marginAuto}>
  47. <Card carousel>
  48. <Carousel {...settings}>
  49. <img className={navImageClasses} width="300px" alt="First slide" src={`${backend}${data.img[0]["url"]}`} />
  50. <img className={navImageClasses} width="300px" alt="First slide" src={`${backend}${data.img[1]["url"]}`} />
  51. </Carousel>
  52. </Card>
  53. </GridItem>
  54. </GridContainer>
  55. </div>
  56. </div>
  57. </div>
  58. </Grid>
  59. <Grid xs={7} style={{padding:"40px", marginTop:"-30px"}}>
  60. <h3>{data.name}</h3>
  61. <h3>Rp.{data.price} - Stock Unit : {data.stock}</h3>
  62. <hr></hr>
  63. <div align="justify">
  64. <p>{ReactHtmlParser(data.description)}</p>
  65. </div>
  66. <Button color="info" round href={"/product_detail?s="+data.id} >
  67. <Icon className={classes.icons}>shopping_cart</Icon>Add To Cart
  68. </Button>
  69. </Grid>
  70. </GridContainer>
  71. <GridContainer justify="center">
  72. <GridItem>
  73. <NavPills
  74. color="primary"
  75. align="center"
  76. alignCenter
  77. tabs={[
  78. {
  79. tabButton: "Overview",
  80. tabIcon: Dashboard,
  81. tabContent: (
  82. <div>
  83. <GridContainer justify="center" style={{padding:"40px", marginTop:"-30px"}}>
  84. <GridItem className={classes.marginAuto}>
  85. <div align="justify">
  86. {ReactHtmlParser(data.overview)}
  87. </div>
  88. </GridItem>
  89. </GridContainer>
  90. </div>
  91. ),
  92. },
  93. {
  94. tabButton: "Specification",
  95. tabIcon: Dashboard,
  96. tabContent: (
  97. <GridContainer justify="center" style={{padding:"40px", marginTop:"-30px"}}>
  98. <GridItem className={classes.marginAuto}>
  99. <div align="justify">
  100. {ReactHtmlParser(data.specification)}
  101. </div>
  102. </GridItem>
  103. </GridContainer>
  104. ),
  105. },
  106. {
  107. tabButton: "Accessories",
  108. tabIcon: Dashboard,
  109. tabContent: (
  110. <GridContainer justify="center" style={{padding:"40px", marginTop:"-30px"}}>
  111. <GridItem className={classes.marginAuto}>
  112. <div align="justify">
  113. {ReactHtmlParser(data.accessories)}
  114. </div>
  115. </GridItem>
  116. </GridContainer>
  117. ),
  118. },
  119. {
  120. tabButton: "Film",
  121. tabIcon: Dashboard,
  122. tabContent: (
  123. <GridContainer justify="center" style={{padding:"40px", marginTop:"-30px"}}>
  124. <GridItem className={classes.marginAuto}>
  125. <img className={navImageClasses} width="300px" height="400px" alt="First slide" src={`${backend}${data.img[0]["url"]}`} />
  126. </GridItem>
  127. </GridContainer>
  128. ),
  129. },
  130. ]}
  131. />
  132. </GridItem>
  133. </GridContainer>
  134. </div>
  135. );
  136. })
  137. return (
  138. <Card className={classes.textCenter}>
  139. <div align="center">
  140. <CardHeader color="info">Product Detail</CardHeader>
  141. </div>
  142. <CardBody>
  143. <div>
  144. {Productdetails}
  145. </div>
  146. </CardBody>
  147. <CardFooter className={classes.textMuted} textAlign="center">
  148. © 2020 , All Right Reserved by @Thamrin Brother Company
  149. </CardFooter>
  150. </Card>
  151. );
  152. }
  153. export default DataProduct;