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);