Files
old-ribica/front-ui/app/components/cart/addToCart.js

71 lines
2.0 KiB
JavaScript
Raw Normal View History

2015-02-04 06:38:22 +01:00
var React = require('react');
var CartStore = require('../../stores/cartStore.js');
var CartActions = require('../../actions/cartActions.js');
2015-02-04 06:38:22 +01:00
var buttonHolderStyle = {
display: 'inline-block'
};
2015-02-04 06:38:22 +01:00
var AddToCart = React.createClass({
render: function() {
var itemCount = this.state.item.get('count');
var moreThanZeroItems = (
2015-02-04 06:38:22 +01:00
<div className="row-fluid add-to-cart">
<div className="span12">
2015-03-09 07:38:34 +01:00
<div style={buttonHolderStyle}><button className="btn btn-default" onClick={this._onDecreaseClick}>-</button></div>
<div style={buttonHolderStyle}> <div className="add-to-cart-count">{ itemCount }</div> </div>
<div style={buttonHolderStyle}><button className="btn btn-success" onClick={this._onIncreaseClick}>+ Dodaj</button></div>
</div>
</div>
2015-02-04 06:38:22 +01:00
);
var zeroItems = (<div className="row-fluid add-to-cart">
<div className="span12">
<div style={buttonHolderStyle}><button className="btn btn-success" onClick={this._onIncreaseClick}>Kupi</button></div>
</div>
</div> );
return (itemCount <= 0) ? zeroItems : moreThanZeroItems;
},
2015-02-04 06:38:22 +01:00
// Add change listeners to stores
componentDidMount: function() {
CartStore.addChangeListener(this._onChange);
CartActions.load();
2015-02-04 06:38:22 +01:00
},
getInitialState: function() {
var itemInCart = CartStore.getStateFor(this.props.itemId);
return { item: itemInCart }
2015-02-04 06:38:22 +01:00
},
_onChange: function () {
if (this.isMounted()) {
var item = CartStore.getStateFor(this.props.itemId);
this.setState({ item: item });
2015-02-04 06:38:22 +01:00
}
},
_onIncreaseClick: function () {
CartActions.addItem(this.props.itemId);
},
_onDecreaseClick: function () {
CartActions.takeItemOut(this.props.itemId);
},
componentWillUnmount: function () {
CartStore.removeChangeListener(this._onChange);
}
2015-02-04 06:38:22 +01:00
});
module.exports = AddToCart;