Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

240 righe
9.5 KiB

  1. import React from "react";
  2. import classNames from "classnames";
  3. import { makeStyles } from "@material-ui/core/styles";
  4. import GridContainer from "components/Grid/GridContainer.js";
  5. import GridItem from "components/Grid/GridItem.js";
  6. import NavPills from "components/NavPills/NavPills.js";
  7. import Card from "components/Card/Card.js";
  8. import CardBody from "components/Card/CardBody.js";
  9. import CardHeader from "components/Card/CardHeader.js";
  10. import Button from "components/CustomButtons/Button.js";
  11. import styles from "assets/jss/nextjs-material-kit/pages/profilePage.js";
  12. import Icon from "@material-ui/core/Icon";
  13. import { Motorcycle } from "@material-ui/icons";
  14. import NumberFormat from 'react-number-format';
  15. import SnackbarContent from "components/Snackbar/SnackbarContent.js";
  16. const useStyles = makeStyles(styles);
  17. const DataProduct = function ({
  18. backend,
  19. ygp,
  20. yamalube,
  21. helmet,
  22. apparel,
  23. accessories, ...props }) {
  24. const classes = useStyles();
  25. const { ...rest } = props;
  26. const imageClasses = classNames(
  27. classes.imgRaised,
  28. classes.imgRoundedCircle,
  29. classes.imgFluid
  30. );
  31. const navImageClasses = classNames(classes.imgRounded, classes.imgGallery);
  32. const YGP = ygp.map((data) => {
  33. return (
  34. <div style={{padding: "20px", marginTop:"-40px"}}>
  35. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  36. <CardBody>
  37. <div align="center" style={{padding:"10px"}}>
  38. <div align="center">
  39. <img style={{ width: "100px", height:"100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  40. />
  41. <h5><b>{data.name}</b></h5>
  42. <h5>
  43. <b><NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} /></b>
  44. </h5><br/>
  45. <Button
  46. color="info" round
  47. href={"/yamaha/product/ygp_details?s="+data.id}
  48. >
  49. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  50. </Button>
  51. </div>
  52. </div>
  53. </CardBody>
  54. </Card>
  55. </div>
  56. );
  57. })
  58. const Yamalube = yamalube.map((data) => {
  59. return (
  60. <div style={{padding: "20px", marginTop:"-40px"}}>
  61. <Card className={classes.textCenter} align="center" style={{width:"300px", height:"350px"}}>
  62. <CardBody>
  63. <div align="center" style={{padding:"10px"}}>
  64. <img style={{ width: "100px", height:"100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  65. />
  66. <div align="center">
  67. <h5><b>{data.name}</b></h5>
  68. <h5>
  69. <b><NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} /></b>
  70. </h5><br/>
  71. <Button
  72. color="info" round
  73. href={"/yamaha/product/yamalube_detail?s="+data.id}
  74. >
  75. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  76. </Button>
  77. </div>
  78. </div>
  79. </CardBody>
  80. </Card>
  81. </div>
  82. );
  83. })
  84. const Helmet = helmet.map((data) => {
  85. return (
  86. <div style={{padding: "20px", marginTop:"-40px"}}>
  87. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  88. <CardBody>
  89. <div align="center" style={{padding:"10px"}}>
  90. <img style={{ width: "150px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  91. />
  92. <div align="center">
  93. <h5><b>{data.name}</b></h5>
  94. <h5><b>
  95. <NumberFormat value={data.price1} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} /> s/d <NumberFormat value={data.price2} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  96. </b></h5>
  97. <Button
  98. color="info" round
  99. href={"/yamaha/product/helmet_details?s="+data.id}
  100. >
  101. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  102. </Button>
  103. </div>
  104. </div>
  105. </CardBody>
  106. </Card>
  107. </div>
  108. );
  109. })
  110. const Apparel = apparel.map((data) => {
  111. return (
  112. <div style={{padding: "20px", marginTop:"-40px"}}>
  113. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  114. <CardBody>
  115. <div align="center" style={{padding:"10px"}}>
  116. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  117. />
  118. <div align="center">
  119. <h5><b>{data.name}</b></h5>
  120. <h5>
  121. <b><NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} /></b>
  122. </h5>
  123. <Button
  124. color="info" round
  125. href={"/yamaha/product/helmet_details?s="+data.id}
  126. >
  127. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  128. </Button>
  129. </div>
  130. </div>
  131. </CardBody>
  132. </Card>
  133. </div>
  134. );
  135. })
  136. const Accessories = accessories.map((data) => {
  137. return (
  138. <div style={{padding: "20px", marginTop:"-40px"}}>
  139. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  140. <CardBody>
  141. <div align="center" style={{padding:"10px"}}>
  142. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  143. />
  144. <div align="center">
  145. <h5><b>{data.name}</b></h5>
  146. <h5>
  147. <b><NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} /></b>
  148. </h5>
  149. <Button
  150. color="info" round
  151. href={"/yamaha/product/helmet_details?s="+data.id}
  152. >
  153. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  154. </Button>
  155. </div>
  156. </div>
  157. </CardBody>
  158. </Card>
  159. </div>
  160. );
  161. })
  162. return (
  163. <Card className={classes.textCenter}>
  164. <div align="center">
  165. <CardHeader color="info">Product</CardHeader>
  166. </div>
  167. <CardBody>
  168. <div align="center">
  169. <h2><b>Sparepart & Accessories</b></h2>
  170. </div>
  171. <GridContainer justify="center">
  172. <GridItem>
  173. <NavPills
  174. alignCenter
  175. color="primary"
  176. tabs={[
  177. {
  178. tabButton: "YGP",
  179. tabIcon: Motorcycle,
  180. tabContent: (
  181. <GridContainer justify="center">
  182. {YGP}
  183. </GridContainer>
  184. ),
  185. },
  186. {
  187. tabButton: "Yamalube",
  188. tabIcon: Motorcycle,
  189. tabContent: (
  190. <GridContainer justify="center">
  191. {Yamalube}
  192. </GridContainer>
  193. ),
  194. },
  195. {
  196. tabButton: "Helmet",
  197. tabIcon: Motorcycle,
  198. tabContent: (
  199. <GridContainer justify="center">
  200. {Helmet}
  201. </GridContainer>
  202. ),
  203. },
  204. {
  205. tabButton: "Apparel",
  206. tabIcon: Motorcycle,
  207. tabContent: (
  208. <GridContainer justify="center">
  209. {Apparel}
  210. </GridContainer>
  211. ),
  212. },
  213. {
  214. tabButton: "Accessories",
  215. tabIcon: Motorcycle,
  216. tabContent: (
  217. <GridContainer justify="center">
  218. {Accessories}
  219. </GridContainer>
  220. ),
  221. },
  222. ]}
  223. />
  224. </GridItem>
  225. </GridContainer>
  226. </CardBody>
  227. </Card>
  228. );
  229. }
  230. export default DataProduct;