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.

560 righe
25 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. rconcept,
  22. mtx,
  23. extreme,
  24. ranger,
  25. fighter,
  26. swirl,
  27. classic,
  28. uno,
  29. apparel,
  30. accessories, ...props }) {
  31. console.log(rconcept);
  32. const classes = useStyles();
  33. const { ...rest } = props;
  34. const imageClasses = classNames(
  35. classes.imgRaised,
  36. classes.imgRoundedCircle,
  37. classes.imgFluid
  38. );
  39. const navImageClasses = classNames(classes.imgRounded, classes.imgGallery);
  40. const YGP = ygp.map((data) => {
  41. return (
  42. <div style={{padding: "20px", marginTop:"-40px"}}>
  43. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  44. <CardBody>
  45. <div align="center" style={{padding:"10px"}}>
  46. <img style={{ width: "150px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  47. />
  48. <div align="center">
  49. <h5>{data.name}</h5>
  50. <h5>
  51. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  52. </h5><br/>
  53. <Button
  54. color="info" round
  55. href={"/yamaha/product/ygp_detail?s="+data.id}
  56. >
  57. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  58. </Button>
  59. </div>
  60. </div>
  61. </CardBody>
  62. </Card>
  63. </div>
  64. );
  65. })
  66. const Yamalube = yamalube.map((data) => {
  67. return (
  68. <div style={{padding: "20px", marginTop:"-40px"}}>
  69. <Card className={classes.textCenter} align="center" style={{width:"300px", height:"350px"}}>
  70. <CardBody>
  71. <div align="center" style={{padding:"10px"}}>
  72. <img style={{ width: "100px", height:"100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  73. />
  74. <div align="center">
  75. <h5>{data.name}</h5>
  76. <h5>
  77. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  78. </h5><br/>
  79. <Button
  80. color="info" round
  81. href={"/yamaha/product/yamalube_detail?s="+data.id}
  82. >
  83. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  84. </Button>
  85. </div>
  86. </div>
  87. </CardBody>
  88. </Card>
  89. </div>
  90. );
  91. })
  92. const HelmetRConcepts = rconcept.map((data) => {
  93. return (
  94. <div style={{padding: "20px", marginTop:"-40px"}}>
  95. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  96. <CardBody>
  97. <div align="center" style={{padding:"10px"}}>
  98. <img style={{ width: "150px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  99. />
  100. <div align="center">
  101. <h5>{data.name}</h5>
  102. <h5>
  103. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  104. </h5>
  105. <Button
  106. color="info" round
  107. href={"/yamaha/product/helmet_details?s="+data.id}
  108. >
  109. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  110. </Button>
  111. </div>
  112. </div>
  113. </CardBody>
  114. </Card>
  115. </div>
  116. );
  117. })
  118. const HelmetMTX = mtx.map((data) => {
  119. return (
  120. <div style={{padding: "20px", marginTop:"-40px"}}>
  121. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  122. <CardBody>
  123. <div align="center" style={{padding:"10px"}}>
  124. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  125. />
  126. <div align="center">
  127. <h5>{data.name}</h5>
  128. <h5>
  129. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  130. </h5>
  131. <Button
  132. color="info" round
  133. href={"/yamaha/product/helmet_details?s="+data.id}
  134. >
  135. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  136. </Button>
  137. </div>
  138. </div>
  139. </CardBody>
  140. </Card>
  141. </div>
  142. );
  143. })
  144. const HelmetExtreme = extreme.map((data) => {
  145. return (
  146. <div style={{padding: "20px", marginTop:"-40px"}}>
  147. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  148. <CardBody>
  149. <div align="center" style={{padding:"10px"}}>
  150. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  151. />
  152. <div align="center">
  153. <h5>{data.name}</h5>
  154. <h5>
  155. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  156. </h5>
  157. <Button
  158. color="info" round
  159. href={"/yamaha/product/helmet_details?s="+data.id}
  160. >
  161. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  162. </Button>
  163. </div>
  164. </div>
  165. </CardBody>
  166. </Card>
  167. </div>
  168. );
  169. })
  170. const HelmetRanger = ranger.map((data) => {
  171. return (
  172. <div style={{padding: "20px", marginTop:"-40px"}}>
  173. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  174. <CardBody>
  175. <div align="center" style={{padding:"10px"}}>
  176. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  177. />
  178. <div align="center">
  179. <h5>{data.name}</h5>
  180. <h5>
  181. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  182. </h5>
  183. <Button
  184. color="info" round
  185. href={"/yamaha/product/helmet_details?s="+data.id}
  186. >
  187. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  188. </Button>
  189. </div>
  190. </div>
  191. </CardBody>
  192. </Card>
  193. </div>
  194. );
  195. })
  196. const HelmetFighter = fighter.map((data) => {
  197. return (
  198. <div style={{padding: "20px", marginTop:"-40px"}}>
  199. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  200. <CardBody>
  201. <div align="center" style={{padding:"10px"}}>
  202. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  203. />
  204. <div align="center">
  205. <h5>{data.name}</h5>
  206. <h5>
  207. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  208. </h5>
  209. <Button
  210. color="info" round
  211. href={"/yamaha/product/helmet_details?s="+data.id}
  212. >
  213. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  214. </Button>
  215. </div>
  216. </div>
  217. </CardBody>
  218. </Card>
  219. </div>
  220. );
  221. })
  222. const HelmetSwirl = swirl.map((data) => {
  223. return (
  224. <div style={{padding: "20px", marginTop:"-40px"}}>
  225. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  226. <CardBody>
  227. <div align="center" style={{padding:"10px"}}>
  228. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  229. />
  230. <div align="center">
  231. <h5>{data.name}</h5>
  232. <h5>
  233. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  234. </h5>
  235. <Button
  236. color="info" round
  237. href={"/yamaha/product/helmet_details?s="+data.id}
  238. >
  239. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  240. </Button>
  241. </div>
  242. </div>
  243. </CardBody>
  244. </Card>
  245. </div>
  246. );
  247. })
  248. const HelmetClassic = classic.map((data) => {
  249. return (
  250. <div style={{padding: "20px", marginTop:"-40px"}}>
  251. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  252. <CardBody>
  253. <div align="center" style={{padding:"10px"}}>
  254. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  255. />
  256. <div align="center">
  257. <h5>{data.name}</h5>
  258. <h5>
  259. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  260. </h5>
  261. <Button
  262. color="info" round
  263. href={"/yamaha/product/helmet_details?s="+data.id}
  264. >
  265. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  266. </Button>
  267. </div>
  268. </div>
  269. </CardBody>
  270. </Card>
  271. </div>
  272. );
  273. })
  274. const HelmetUno = uno.map((data) => {
  275. return (
  276. <div style={{padding: "20px", marginTop:"-40px"}}>
  277. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  278. <CardBody>
  279. <div align="center" style={{padding:"10px"}}>
  280. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  281. />
  282. <div align="center">
  283. <h5>{data.name}</h5>
  284. <h5>
  285. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  286. </h5>
  287. <Button
  288. color="info" round
  289. href={"/yamaha/product/helmet_details?s="+data.id}
  290. >
  291. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  292. </Button>
  293. </div>
  294. </div>
  295. </CardBody>
  296. </Card>
  297. </div>
  298. );
  299. })
  300. const ApparelRConcept = apparel.map((data) => {
  301. return (
  302. <div style={{padding: "20px", marginTop:"-40px"}}>
  303. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  304. <CardBody>
  305. <div align="center" style={{padding:"10px"}}>
  306. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  307. />
  308. <div align="center">
  309. <h5>{data.name}</h5>
  310. <h5>
  311. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  312. </h5>
  313. <Button
  314. color="info" round
  315. href={"/yamaha/product/helmet_details?s="+data.id}
  316. >
  317. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  318. </Button>
  319. </div>
  320. </div>
  321. </CardBody>
  322. </Card>
  323. </div>
  324. );
  325. })
  326. const Accessories = accessories.map((data) => {
  327. return (
  328. <div style={{padding: "20px", marginTop:"-40px"}}>
  329. <Card className={classes.textCenter} align="center" style={{width:"300px"}}>
  330. <CardBody>
  331. <div align="center" style={{padding:"10px"}}>
  332. <img style={{ width: "100px", display: "block" }} src={`${backend}${data.img["url"]}`} className={navImageClasses}
  333. />
  334. <div align="center">
  335. <h5>{data.name}</h5>
  336. <h5>
  337. <NumberFormat value={data.price} displayType={'text'} thousandSeparator={true} prefix={'Rp.'} />
  338. </h5>
  339. <Button
  340. color="info" round
  341. href={"/yamaha/product/helmet_details?s="+data.id}
  342. >
  343. <Icon className={classes.icons}>open_in_new</Icon>Detail Product
  344. </Button>
  345. </div>
  346. </div>
  347. </CardBody>
  348. </Card>
  349. </div>
  350. );
  351. })
  352. return (
  353. <Card className={classes.textCenter}>
  354. <div align="center">
  355. <CardHeader color="info">Product</CardHeader>
  356. </div>
  357. <CardBody>
  358. <div align="center">
  359. <h2>Sparepart & Accessories</h2>
  360. </div>
  361. <GridContainer justify="center">
  362. <GridItem>
  363. <NavPills
  364. alignCenter
  365. color="primary"
  366. tabs={[
  367. {
  368. tabButton: "YGP",
  369. tabIcon: Motorcycle,
  370. tabContent: (
  371. <GridContainer justify="center">
  372. {YGP}
  373. </GridContainer>
  374. ),
  375. },
  376. {
  377. tabButton: "Yamalube",
  378. tabIcon: Motorcycle,
  379. tabContent: (
  380. <GridContainer justify="center">
  381. {Yamalube}
  382. </GridContainer>
  383. ),
  384. },
  385. {
  386. tabButton: "Helmet",
  387. tabIcon: Motorcycle,
  388. tabContent: (
  389. <div>
  390. <div align="center">
  391. <div align="center" className={classes.section} id="notifications">
  392. <SnackbarContent
  393. message={
  394. <h4>R CONCEPT</h4>
  395. }
  396. align="center"
  397. color="info"
  398. />
  399. </div>
  400. <GridContainer justify="center" style={{padding:"40px", marginTop:"-50px"}}>
  401. {HelmetRConcepts}
  402. </GridContainer>
  403. </div><br></br><br></br>
  404. <div align="center" style={{marginTop:"-50px"}}>
  405. <div align="center" className={classes.section} id="notifications">
  406. <SnackbarContent
  407. message={
  408. <h4>MTX</h4>
  409. }
  410. align="center"
  411. color="info"
  412. />
  413. </div>
  414. <GridContainer justify="center" style={{padding:"40px", marginTop:"-50px"}}>
  415. {HelmetMTX}
  416. </GridContainer>
  417. </div><br></br><br></br>
  418. <div align="center" style={{marginTop:"-50px"}}>
  419. <div align="center" className={classes.section} id="notifications">
  420. <SnackbarContent
  421. message={
  422. <h4>Extreme</h4>
  423. }
  424. align="center"
  425. color="info"
  426. />
  427. </div>
  428. <GridContainer justify="center" style={{padding:"40px", marginTop:"-50px"}}>
  429. {HelmetExtreme}
  430. </GridContainer>
  431. </div><br></br><br></br>
  432. <div align="center" style={{marginTop:"-50px"}}>
  433. <div align="center" className={classes.section} id="notifications">
  434. <SnackbarContent
  435. message={
  436. <h4>Ranger</h4>
  437. }
  438. align="center"
  439. color="info"
  440. />
  441. </div>
  442. <GridContainer justify="center" style={{padding:"40px", marginTop:"-50px"}}>
  443. {HelmetRanger}
  444. </GridContainer>
  445. </div><br></br><br></br>
  446. <div align="center" style={{marginTop:"-50px"}}>
  447. <div align="center" className={classes.section} id="notifications">
  448. <SnackbarContent
  449. message={
  450. <h4>Fighter</h4>
  451. }
  452. align="center"
  453. color="info"
  454. />
  455. </div>
  456. <GridContainer justify="center" style={{padding:"40px", marginTop:"-50px"}}>
  457. {HelmetFighter}
  458. </GridContainer>
  459. </div><br></br><br></br>
  460. <div align="center" style={{marginTop:"-50px"}}>
  461. <div align="center" className={classes.section} id="notifications">
  462. <SnackbarContent
  463. message={
  464. <h4>Swirl</h4>
  465. }
  466. align="center"
  467. color="info"
  468. />
  469. </div>
  470. <GridContainer justify="center" style={{padding:"40px", marginTop:"-50px"}}>
  471. {HelmetSwirl}
  472. </GridContainer>
  473. </div><br></br><br></br>
  474. <div align="center" style={{marginTop:"-50px"}}>
  475. <div align="center" className={classes.section} id="notifications">
  476. <SnackbarContent
  477. message={
  478. <h4>Classic</h4>
  479. }
  480. align="center"
  481. color="info"
  482. />
  483. </div>
  484. <GridContainer justify="center" style={{padding:"40px", marginTop:"-50px"}}>
  485. {HelmetClassic}
  486. </GridContainer>
  487. </div><br></br><br></br>
  488. <div align="center" style={{marginTop:"-50px"}}>
  489. <div align="center" className={classes.section} id="notifications">
  490. <SnackbarContent
  491. message={
  492. <h4>Uno</h4>
  493. }
  494. align="center"
  495. color="info"
  496. />
  497. </div>
  498. <GridContainer justify="center" style={{padding:"40px", marginTop:"-50px"}}>
  499. {HelmetUno}
  500. </GridContainer>
  501. </div><br></br><br></br>
  502. </div>
  503. ),
  504. },
  505. {
  506. tabButton: "Apparel",
  507. tabIcon: Motorcycle,
  508. tabContent: (
  509. <div>
  510. <div align="center">
  511. <div align="center" className={classes.section} id="notifications">
  512. <SnackbarContent
  513. message={
  514. <h4>R Concept Apprael</h4>
  515. }
  516. align="center"
  517. color="info"
  518. />
  519. </div>
  520. <GridContainer justify="center" style={{padding:"40px", marginTop:"-50px"}}>
  521. {ApparelRConcept}
  522. </GridContainer>
  523. </div><br></br><br></br>
  524. </div>
  525. ),
  526. },
  527. {
  528. tabButton: "Accessories",
  529. tabIcon: Motorcycle,
  530. tabContent: (
  531. <GridContainer justify="center">
  532. {Accessories}
  533. </GridContainer>
  534. ),
  535. },
  536. ]}
  537. />
  538. </GridItem>
  539. </GridContainer>
  540. </CardBody>
  541. </Card>
  542. );
  543. }
  544. export default DataProduct;