2015-02-08 15:17:35 +01:00
|
|
|
var React = require('react');
|
|
|
|
|
var CartStore = require('../../stores/cartStore.js');
|
|
|
|
|
var CartActions = require('../../actions/cartActions.js');
|
2015-02-13 06:51:58 +01:00
|
|
|
var NavigationActions = require('../../actions/navigationActions.js');
|
2015-06-01 12:39:15 +02:00
|
|
|
// var LoginStatus = require('../shared/loginStatus');
|
2015-04-20 05:49:23 +02:00
|
|
|
CartTotal = require('./cartTotal');
|
|
|
|
|
|
2015-02-08 15:17:35 +01:00
|
|
|
|
2015-05-25 20:49:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
var cartStyle = {
|
2015-02-08 15:17:35 +01:00
|
|
|
fontSize: '50px'
|
|
|
|
|
};
|
|
|
|
|
|
2015-04-16 06:45:38 +02:00
|
|
|
var normalizeCount = function(count) {
|
|
|
|
|
if (count >= 0 && count < 10) {
|
2015-05-25 20:49:52 +02:00
|
|
|
return "\u00a0" + count;
|
2015-04-16 06:45:38 +02:00
|
|
|
} else {
|
|
|
|
|
return count;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-02-08 15:17:35 +01:00
|
|
|
var CartIcon = React.createClass({
|
|
|
|
|
|
2015-05-25 20:49:52 +02:00
|
|
|
render: function() {
|
2015-02-08 15:17:35 +01:00
|
|
|
|
|
|
|
|
var textNotificationStyle = (this.state.count > 0) ? { display: 'inline-block'} : { display: 'none'} ;
|
|
|
|
|
|
2015-06-21 09:22:41 +02:00
|
|
|
var large = (
|
2015-05-25 20:49:52 +02:00
|
|
|
<div>
|
|
|
|
|
<ul className="nav navbar-nav navbar-right hidden-md hidden-sm hidden-xs">
|
|
|
|
|
<li onClick={this._onClick} style={{borderTop: 'solid lightgray 1px', borderBottom: 'solid lightgray 1px', borderLeft: 'solid lightgray 1px', paddingBottom: 22}}><a ><div className="mycart"><span>{normalizeCount(this.state.count)}</span></div></a></li>
|
2015-07-05 13:22:47 +02:00
|
|
|
<li onClick={this._onClick} style={{borderTop: 'solid lightgray 1px', borderBottom: 'solid lightgray 1px', paddingBottom: 2}}><a href="#" style={{ paddingRight: '5px', backgroundColor: 'transparent' }}><CartTotal items={this.state.items} itemCounts={this.state.itemCounts}/> </a></li>
|
2015-05-25 20:49:52 +02:00
|
|
|
<li onClick={this._onClick} style={{borderTop: 'solid lightgray 1px', borderBottom: 'solid lightgray 1px', borderRight: 'solid lightgray 1px'}}>
|
2015-06-14 04:30:21 +02:00
|
|
|
<a style={{marginBottom: 10, marginRight: 10}} className="mybutton" href="#">Završi narudžbu</a></li>
|
2015-04-12 09:21:00 +02:00
|
|
|
|
|
|
|
|
</ul>
|
2015-05-25 20:49:52 +02:00
|
|
|
|
|
|
|
|
<ul className="nav navbar-nav navbar-right hidden-lg">
|
|
|
|
|
<li onClick={this._onClick} style={{borderTop: 'solid lightgray 1px', borderBottom: 'solid lightgray 1px', borderLeft: 'solid lightgray 1px', paddingBottom: 22}}><a ><div className="mycart"><span>{normalizeCount(this.state.count)}</span></div></a></li>
|
2015-07-05 13:22:47 +02:00
|
|
|
<li onClick={this._onClick} style={{borderTop: 'solid lightgray 1px', borderBottom: 'solid lightgray 1px',borderRight: 'solid lightgray 1px', paddingBottom: 2}}><a href="#" style={{ paddingRight: '5px', backgroundColor: 'transparent'}}><CartTotal items={this.state.items} itemCounts={this.state.itemCounts} /> </a></li>
|
2015-05-25 20:49:52 +02:00
|
|
|
</ul>
|
|
|
|
|
</div>
|
2015-02-08 15:17:35 +01:00
|
|
|
);
|
2015-06-20 07:05:16 +02:00
|
|
|
var small = (
|
|
|
|
|
<span>
|
|
|
|
|
<ul className="nav navbar-nav hidden-lg">
|
|
|
|
|
<li onClick={this._onClick} style={{paddingBottom: 22}}><a ><div className="mycart"><span>{normalizeCount(this.state.count)}</span></div></a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</span>
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (this.props.small === 'true') {
|
|
|
|
|
return small;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
return large;
|
|
|
|
|
}
|
|
|
|
|
|
2015-02-08 15:17:35 +01:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// Add change listeners to stores
|
|
|
|
|
componentDidMount: function() {
|
2015-05-25 20:49:52 +02:00
|
|
|
CartStore.addChangeListener(this._onChange);
|
2015-05-14 06:21:49 +02:00
|
|
|
if(!CartStore.dataStartedLoading()) {
|
|
|
|
|
CartActions.load();
|
|
|
|
|
};
|
2015-02-08 15:17:35 +01:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getInitialState: function() {
|
|
|
|
|
var cartState = CartStore.getWholeCartState();
|
|
|
|
|
return cartState;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
_onChange: function () {
|
|
|
|
|
if (this.isMounted()) {
|
2015-05-14 06:21:49 +02:00
|
|
|
|
2015-05-25 20:49:52 +02:00
|
|
|
this.setState(CartStore.getWholeCartState());
|
2015-02-08 15:17:35 +01:00
|
|
|
}
|
2015-02-08 15:18:15 +01:00
|
|
|
},
|
|
|
|
|
|
|
|
|
|
componentWillUnmount: function () {
|
|
|
|
|
CartStore.removeChangeListener(this._onChange);
|
2015-02-13 06:51:58 +01:00
|
|
|
},
|
|
|
|
|
|
2015-06-01 12:48:24 +02:00
|
|
|
_onClick: function(e) {
|
2015-02-13 06:51:58 +01:00
|
|
|
NavigationActions.goToCart();
|
2015-06-01 12:48:24 +02:00
|
|
|
e.preventDefault();
|
2015-02-08 15:17:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
2015-05-25 20:49:52 +02:00
|
|
|
module.exports = CartIcon;
|