import React, { Component } from 'react';
import LazyLoad from 'react-lazyload';
import PlaceholderComponent from './Placeholder';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { NavLink } from 'react-router-dom';
import { addToCart, removeFromCart, isInCart } from '../actions'; // This actions are used to manages activities on cart
import { Card, CardActions, CardHeader, CardMedia, CardTitle, CardText } from 'material-ui/Card';
import RaisedButton from 'material-ui/RaisedButton';
import { GridList, GridTile } from 'material-ui/GridList';
// Product component
class ProductComponent extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
// Toggle addtocart/removefromcart button based on isInCart status
handleClick(e) {
if (this.props.isInCart) {
this.props.removeFromCart(this.props._id);
} else {
const item = {
id: this.props._id,
name: this.props.name,
image: this.props.image,
price: this.props.price
};
this.props.addToCart(item);
}
}
/**
* @param {} amount
*
*/
getDiscount(amount) {
if (Math.floor(Math.random() * 3)) {
return amount + Math.floor(Math.random() * 100) + 1;
} else {
return;
}
}
render() {
const mrp = MRP Rs{this.props.mrp ? this.props.mrp : ''} {this.props.price};
return (
} >
} >
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec mattis pretium massa.
)
}
}
// Mapping isInCart state to props to access easily in component
const mapStateToProps = (state, props) => {
return {
isInCart: isInCart(state, props)
}
}
// Mapping dispatch functions to props to access easily
const mapDispatchToProps = (dispatch) => ({
addToCart: (item) => dispatch(addToCart(item)),
removeFromCart: (id) => dispatch(removeFromCart(id))
})
export default connect(mapStateToProps, mapDispatchToProps)(ProductComponent);