@@ -1,120 +0,0 @@ | |||||
import React from "react"; | |||||
// nodejs library that concatenates classes | |||||
import classNames from "classnames"; | |||||
// nodejs library to set properties for components | |||||
import PropTypes from "prop-types"; | |||||
// @material-ui/core components | |||||
import { makeStyles } from "@material-ui/core/styles"; | |||||
import makeStyles from "@material-ui/core/styles/makeStyles"; | |||||
import Button from "@material-ui/core/Button"; | |||||
// @material-ui/icons | |||||
// core components | |||||
import Cardstyles from "assets/jss/nextjs-material-kit/components/cardStyle.js"; | |||||
import CardBodystyles from "assets/jss/nextjs-material-kit/components/cardBodyStyle.js"; | |||||
import CardFooterstyles from "assets/jss/nextjs-material-kit/components/cardFooterStyle.js"; | |||||
import CardHeaderstyles from "assets/jss/nextjs-material-kit/components/cardHeaderStyle.js"; | |||||
import buttonStyle from "assets/jss/nextjs-material-kit/components/buttonStyle.js"; | |||||
const CarduseStyles = makeStyles(Cardstyles); | |||||
const CardBodyuseStyles = makeStyles(CardBodystyles); | |||||
const CardFooteruseStyles = makeStyles(CardFooterstyles); | |||||
const CardHeaderuseStyles = makeStyles(CardHeaderstyles); | |||||
const makeComponentStyles = makeStyles(() => ({ | |||||
...buttonStyle | |||||
})); | |||||
async function Card(props) { | |||||
const classes = CarduseStyles(); | |||||
const { className, children, plain, carousel, ...rest } = props; | |||||
const cardClasses = classNames({ | |||||
[classes.card]: true, | |||||
[classes.cardPlain]: plain, | |||||
[classes.cardCarousel]: carousel, | |||||
[className]: className !== undefined | |||||
}); | |||||
return ( | |||||
<div className={cardClasses} {...rest}> | |||||
{children} | |||||
</div> | |||||
); | |||||
} | |||||
async function CardBody(props) { | |||||
const classes = CardBodyuseStyles(); | |||||
const { className, children, ...rest } = props; | |||||
const cardBodyClasses = classNames({ | |||||
[classes.cardBody]: true, | |||||
[className]: className !== undefined | |||||
}); | |||||
return ( | |||||
<div className={cardBodyClasses} {...rest}> | |||||
{children} | |||||
</div> | |||||
); | |||||
} | |||||
async function CardFooter(props) { | |||||
const classes = CardFooteruseStyles(); | |||||
const { className, children, ...rest } = props; | |||||
const cardFooterClasses = classNames({ | |||||
[classes.cardFooter]: true, | |||||
[className]: className !== undefined | |||||
}); | |||||
return ( | |||||
<div className={cardFooterClasses} {...rest}> | |||||
{children} | |||||
</div> | |||||
); | |||||
} | |||||
async function CardHeader(props) { | |||||
const classes = CardHeaderuseStyles(); | |||||
const { className, children, color, plain, ...rest } = props; | |||||
const cardHeaderClasses = classNames({ | |||||
[classes.cardHeader]: true, | |||||
[classes[color + "CardHeader"]]: color, | |||||
[classes.cardHeaderPlain]: plain, | |||||
[className]: className !== undefined | |||||
}); | |||||
return ( | |||||
<div className={cardHeaderClasses} {...rest}> | |||||
{children} | |||||
</div> | |||||
); | |||||
} | |||||
Card.propTypes = { | |||||
className: PropTypes.string, | |||||
plain: PropTypes.bool, | |||||
carousel: PropTypes.bool, | |||||
children: PropTypes.node | |||||
}; | |||||
CardBody.propTypes = { | |||||
className: PropTypes.string, | |||||
children: PropTypes.node | |||||
}; | |||||
CardFooter.propTypes = { | |||||
className: PropTypes.string, | |||||
children: PropTypes.node | |||||
}; | |||||
CardHeader.propTypes = { | |||||
className: PropTypes.string, | |||||
color: PropTypes.oneOf(["warning", "success", "danger", "info", "primary"]), | |||||
plain: PropTypes.bool, | |||||
children: PropTypes.node | |||||
}; | |||||
module.exports = { | |||||
Card: Card, | |||||
CardBody: CardBody, | |||||
CardFooter: CardFooter, | |||||
CardHeader: CardHeader, | |||||
}; |
@@ -49,7 +49,22 @@ export default function HeaderLinks(props) { | |||||
buttonIcon={Apps} | buttonIcon={Apps} | ||||
dropdownList={[ | dropdownList={[ | ||||
<Link href="/product"> | <Link href="/product"> | ||||
<a className={classes.dropdownLink}>Product</a> | |||||
<a className={classes.dropdownLink}>Motor</a> | |||||
</Link>, | |||||
<Link href="/product"> | |||||
<a className={classes.dropdownLink}>YGP</a> | |||||
</Link>, | |||||
<Link href="/product"> | |||||
<a className={classes.dropdownLink}>Yamalube</a> | |||||
</Link>, | |||||
<Link href="/product"> | |||||
<a className={classes.dropdownLink}>Helmet</a> | |||||
</Link>, | |||||
<Link href="/product"> | |||||
<a className={classes.dropdownLink}>Apparel</a> | |||||
</Link>, | |||||
<Link href="/product"> | |||||
<a className={classes.dropdownLink}>Accessories</a> | |||||
</Link>, | </Link>, | ||||
<Link href="https://booking.thamrin.co.id/"> | <Link href="https://booking.thamrin.co.id/"> | ||||
<a className={classes.dropdownLink}>Service</a> | <a className={classes.dropdownLink}>Service</a> | ||||
@@ -58,7 +58,7 @@ | |||||
"react-paginate": "^7.1.0", | "react-paginate": "^7.1.0", | ||||
"react-slick": "0.25.2", | "react-slick": "0.25.2", | ||||
"react-swipeable-views": "0.13.9", | "react-swipeable-views": "0.13.9", | ||||
"rsuite": "^4.8.6", | |||||
"rsuite": "^4.9.2", | |||||
"styled-components": "5.1.0", | "styled-components": "5.1.0", | ||||
"webpack": "4.43.0" | "webpack": "4.43.0" | ||||
} | } | ||||
@@ -1,7 +1,7 @@ | |||||
import React from 'react'; | import React from 'react'; | ||||
import { makeStyles } from "@material-ui/core/styles"; | import { makeStyles } from "@material-ui/core/styles"; | ||||
import ReactHtmlParser from "react-html-parser"; | |||||
import styles from "assets/jss/nextjs-material-kit/pages/componentsSections/notificationsStyles.js"; | |||||
import Card from "components/Card/Card.js"; | import Card from "components/Card/Card.js"; | ||||
import CardBody from "components/Card/CardBody.js"; | import CardBody from "components/Card/CardBody.js"; | ||||
import CardHeader from "components/Card/CardHeader.js"; | import CardHeader from "components/Card/CardHeader.js"; | ||||
@@ -16,9 +16,7 @@ const DataCarrer = function ({ backend, detailcarrer, ...props }) { | |||||
<img src={`${backend}${data.img[0]["url"]}`} alt="First slide" className="slick-image" /> | <img src={`${backend}${data.img[0]["url"]}`} alt="First slide" className="slick-image" /> | ||||
</div> | </div> | ||||
<h5 align="center">Masa Pendaftaran : {data.start_regis} s/d {data.until_regis}</h5> | <h5 align="center">Masa Pendaftaran : {data.start_regis} s/d {data.until_regis}</h5> | ||||
<h5 align="center" align="justify"> | |||||
parse({data.description}) | |||||
</h5> | |||||
<h5 align="justify">{ReactHtmlParser(data.description)}</h5> | |||||
</CardBody> | </CardBody> | ||||
</Card> | </Card> | ||||
); | ); | ||||
@@ -1,6 +1,7 @@ | |||||
import React from "react"; | import React from "react"; | ||||
import classNames from "classnames"; | import classNames from "classnames"; | ||||
import { makeStyles } from "@material-ui/core/styles"; | import { makeStyles } from "@material-ui/core/styles"; | ||||
import ReactHtmlParser from "react-html-parser"; | |||||
import Dashboard from "@material-ui/icons/Dashboard"; | import Dashboard from "@material-ui/icons/Dashboard"; | ||||
import LocalGroceryStoreIcon from "@material-ui/icons/LocalGroceryStore"; | import LocalGroceryStoreIcon from "@material-ui/icons/LocalGroceryStore"; | ||||
@@ -16,6 +17,7 @@ import CardFooter from "components/Card/CardFooter.js"; | |||||
import Button from "components/CustomButtons/Button.js"; | import Button from "components/CustomButtons/Button.js"; | ||||
import styles from "assets/jss/nextjs-material-kit/pages/profilePage.js"; | import styles from "assets/jss/nextjs-material-kit/pages/profilePage.js"; | ||||
import Carousel from "react-slick"; | import Carousel from "react-slick"; | ||||
import Icon from "@material-ui/core/Icon"; | |||||
const useStyles = makeStyles(styles); | const useStyles = makeStyles(styles); | ||||
@@ -27,28 +29,49 @@ const DataProduct = function ({ backend, detailproduct, ...props }) { | |||||
classes.imgRoundedCircle, | classes.imgRoundedCircle, | ||||
classes.imgFluid | 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 navImageClasses = classNames(classes.imgRounded, classes.imgGallery); | ||||
const Productdetails = detailproduct.map((data) => { | const Productdetails = detailproduct.map((data) => { | ||||
return ( | return ( | ||||
<div> | <div> | ||||
<GridContainer> | <GridContainer> | ||||
<Grid> | |||||
<div className={classes.section}> | |||||
<div className={classes.container}> | |||||
<Card style={{width:"700px", height:"400px"}}> | |||||
<div> | |||||
<img className={navImageClasses} width="300px" height="400px" alt="First slide" src={`${backend}${data.img[0]["url"]}`} /> | |||||
</div> | |||||
</Card> | |||||
<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[0]["url"]}`} /> | |||||
<img className={navImageClasses} width="300px" alt="First slide" src={`${backend}${data.img[1]["url"]}`} /> | |||||
</Carousel> | |||||
</Card> | |||||
</GridItem> | |||||
</GridContainer> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</Grid> | |||||
<Grid style={{padding:"40px", marginTop:"-30px"}}> | |||||
<h3>{data.name}</h3> | |||||
<h3>Rp.{data.price}</h3> | |||||
<hr></hr> | |||||
<p>{data.description} ---- Stock Unit : {data.stock}</p> | |||||
</Grid> | |||||
</Grid> | |||||
<Grid xs={7} style={{padding:"40px", marginTop:"-30px"}}> | |||||
<h3>{data.name}</h3> | |||||
<h3>Rp.{data.price} - Stock Unit : {data.stock}</h3> | |||||
<hr></hr> | |||||
<div align="justify"> | |||||
<p>{ReactHtmlParser(data.description)}</p> | |||||
</div> | |||||
<Button color="info" round href={"/product_detail?s="+data.id} > | |||||
<Icon className={classes.icons}>shopping_cart</Icon>Add To Cart | |||||
</Button> | |||||
</Grid> | |||||
</GridContainer> | </GridContainer> | ||||
<GridContainer justify="center"> | <GridContainer justify="center"> | ||||
<GridItem> | <GridItem> | ||||
@@ -61,20 +84,44 @@ const DataProduct = function ({ backend, detailproduct, ...props }) { | |||||
tabButton: "Overview", | tabButton: "Overview", | ||||
tabIcon: Dashboard, | tabIcon: Dashboard, | ||||
tabContent: ( | tabContent: ( | ||||
<GridContainer justify="center"> | |||||
<GridItem> | |||||
{data.overview} | |||||
</GridItem> | |||||
<div> | |||||
<GridContainer justify="center" style={{padding:"40px", marginTop:"-30px"}}> | |||||
<Grid fluid xs={5}> | |||||
<div className={classes.section} id="notifications"> | |||||
<img className={navImageClasses} width="50px" alt="First slide" src={`${backend}${data.img[0]["url"]}`} /> | |||||
</div> | |||||
</Grid> | |||||
<Grid xs={7} style={{padding:"40px", marginTop:"-30px"}}> | |||||
<div align="justify"> | |||||
<p>{ReactHtmlParser(data.description)}</p> | |||||
</div> | |||||
</Grid> | |||||
</GridContainer> | </GridContainer> | ||||
<hr></hr> | |||||
<GridContainer justify="center" style={{padding:"40px", marginTop:"-30px"}}> | |||||
<Grid fluid xs={5}> | |||||
<div className={classes.section} id="notifications"> | |||||
<img className={navImageClasses} width="50px" alt="First slide" src={`${backend}${data.img[0]["url"]}`} /> | |||||
</div> | |||||
</Grid> | |||||
<Grid xs={7} style={{padding:"40px", marginTop:"-30px"}}> | |||||
<div align="justify"> | |||||
<p>{ReactHtmlParser(data.description)}</p> | |||||
</div> | |||||
</Grid> | |||||
</GridContainer> | |||||
</div> | |||||
), | ), | ||||
}, | }, | ||||
{ | { | ||||
tabButton: "Specification", | tabButton: "Specification", | ||||
tabIcon: Dashboard, | tabIcon: Dashboard, | ||||
tabContent: ( | tabContent: ( | ||||
<GridContainer justify="center"> | |||||
<GridContainer justify="center" style={{padding:"40px", marginTop:"-30px"}}> | |||||
<GridItem> | <GridItem> | ||||
{data.specification} | |||||
<div align="justify"> | |||||
{ReactHtmlParser(data.specification)} | |||||
</div> | |||||
</GridItem> | </GridItem> | ||||
</GridContainer> | </GridContainer> | ||||
), | ), | ||||
@@ -83,9 +130,11 @@ const DataProduct = function ({ backend, detailproduct, ...props }) { | |||||
tabButton: "Accessories", | tabButton: "Accessories", | ||||
tabIcon: Dashboard, | tabIcon: Dashboard, | ||||
tabContent: ( | tabContent: ( | ||||
<GridContainer justify="center"> | |||||
<GridContainer justify="center" style={{padding:"40px", marginTop:"-30px"}}> | |||||
<GridItem> | <GridItem> | ||||
{data.accessories} | |||||
<div align="justify"> | |||||
{ReactHtmlParser(data.description)} | |||||
</div> | |||||
</GridItem> | </GridItem> | ||||
</GridContainer> | </GridContainer> | ||||
), | ), | ||||
@@ -94,7 +143,7 @@ const DataProduct = function ({ backend, detailproduct, ...props }) { | |||||
tabButton: "Film", | tabButton: "Film", | ||||
tabIcon: Dashboard, | tabIcon: Dashboard, | ||||
tabContent: ( | tabContent: ( | ||||
<GridContainer justify="center"> | |||||
<GridContainer justify="center" style={{padding:"40px", marginTop:"-30px"}}> | |||||
<GridItem> | <GridItem> | ||||
<img className={navImageClasses} width="300px" height="400px" alt="First slide" src={`${backend}${data.img[0]["url"]}`} /> | <img className={navImageClasses} width="300px" height="400px" alt="First slide" src={`${backend}${data.img[0]["url"]}`} /> | ||||
</GridItem> | </GridItem> | ||||
@@ -13,7 +13,7 @@ class MyDocument extends Document { | |||||
content="width=device-width, initial-scale=1, shrink-to-fit=no" | content="width=device-width, initial-scale=1, shrink-to-fit=no" | ||||
/> | /> | ||||
<meta name="theme-color" content="#000000" /> | <meta name="theme-color" content="#000000" /> | ||||
<link rel="shortcut icon" href={require("assets/img/favicon.png")} /> | |||||
<link rel="shortcut icon" href={require("assets/img/favicons.png")} /> | |||||
<link | <link | ||||
rel="apple-touch-icon" | rel="apple-touch-icon" | ||||
sizes="76x76" | sizes="76x76" | ||||
@@ -4,16 +4,8 @@ import { makeStyles } from "@material-ui/core/styles"; | |||||
import Header from "components/Header/Header.js"; | import Header from "components/Header/Header.js"; | ||||
import HeaderLinks from "components/Header/HeaderLinks.js"; | import HeaderLinks from "components/Header/HeaderLinks.js"; | ||||
import Footer from "components/Footer/Footer.js"; | |||||
import Parallax from "components/Parallax/Parallax.js"; | |||||
import styles from "assets/jss/nextjs-material-kit/pages/components.js"; | |||||
import GridContainer from "components/Grid/GridContainer.js"; | |||||
import GridItem from "components/Grid/GridItem.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 Button from "components/CustomButtons/Button.js"; | |||||
import Footer from "components/Footer/Footer.js"; | import Footer from "components/Footer/Footer.js"; | ||||
import GetbusinessPartners from "../api/home/businessPartner.js"; | import GetbusinessPartners from "../api/home/businessPartner.js"; | ||||
import Getservices from "../api/home/service.js"; | import Getservices from "../api/home/service.js"; | ||||
@@ -6637,10 +6637,10 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: | |||||
hash-base "^3.0.0" | hash-base "^3.0.0" | ||||
inherits "^2.0.1" | inherits "^2.0.1" | ||||
rsuite-table@^3.14.1: | |||||
version "3.14.1" | |||||
resolved "https://registry.yarnpkg.com/rsuite-table/-/rsuite-table-3.14.1.tgz#2bb682a2b7bae7a94f990b6aa8e667a0dc4f96c6" | |||||
integrity sha512-4XidYEG21gAiezBz+2HqOSf+hkjZsuM6EMqglcHAUPcxvj1/uWPKHkpL7PCyLzP3uVvr2dNzj4Z/p/Io9XSjDQ== | |||||
rsuite-table@^3.14.3: | |||||
version "3.14.3" | |||||
resolved "https://registry.yarnpkg.com/rsuite-table/-/rsuite-table-3.14.3.tgz#f041908d60df5af25d2b9be7c7eae65361b84deb" | |||||
integrity sha512-F7LvKfAXH2ZpnXT41PawYUxytQt8S+CgTUq4Co9niD1cmRnIX3qADip2T18JjFiQKkjCP1ajs613XgFLgn/W3g== | |||||
dependencies: | dependencies: | ||||
"@babel/runtime" "^7.8.4" | "@babel/runtime" "^7.8.4" | ||||
classnames "^2.2.5" | classnames "^2.2.5" | ||||
@@ -6648,10 +6648,10 @@ rsuite-table@^3.14.1: | |||||
element-resize-event "^3.0.2" | element-resize-event "^3.0.2" | ||||
lodash "^4.17.5" | lodash "^4.17.5" | ||||
rsuite@^4.8.6: | |||||
version "4.8.6" | |||||
resolved "https://registry.yarnpkg.com/rsuite/-/rsuite-4.8.6.tgz#51090caf73c5f9a827bd0ff9a2d462365dbd2726" | |||||
integrity sha512-tOIQyduKbSrRyVb3IH2qTnRH69uzvhCb1ak2EDAIYoB2EgmGEXnGYp7nT7VwWHIF/hs3HY6E01KToMfvtwmwaA== | |||||
rsuite@^4.9.2: | |||||
version "4.9.2" | |||||
resolved "https://registry.yarnpkg.com/rsuite/-/rsuite-4.9.2.tgz#6591c11a35ec5ee5520cbb1a4566c88f03038ad0" | |||||
integrity sha512-+dSJNZqtmsCe3+vucUdxdKt9MSQwU6KKrGdbCsCiRz9wLSkoUvg0MLBOw0eEixZssVg1dWPRFG54qhv5Ru7c3Q== | |||||
dependencies: | dependencies: | ||||
"@babel/runtime" "^7.8.4" | "@babel/runtime" "^7.8.4" | ||||
classnames ">=2.0.0" | classnames ">=2.0.0" | ||||
@@ -6663,7 +6663,7 @@ rsuite@^4.8.6: | |||||
react-lifecycles-compat "^3.0.4" | react-lifecycles-compat "^3.0.4" | ||||
react-virtualized "^9.21.0" | react-virtualized "^9.21.0" | ||||
recompose "^0.30.0" | recompose "^0.30.0" | ||||
rsuite-table "^3.14.1" | |||||
rsuite-table "^3.14.3" | |||||
schema-typed "^1.5.1" | schema-typed "^1.5.1" | ||||
run-queue@^1.0.0, run-queue@^1.0.3: | run-queue@^1.0.0, run-queue@^1.0.3: | ||||