diff --git a/static/js/shop.jsx b/static/js/shop.jsx index 3e00905..27c3a08 100644 --- a/static/js/shop.jsx +++ b/static/js/shop.jsx @@ -542,6 +542,7 @@ class ProductCartItem extends React.PureComponent { onToggleOverlayRemove: PropTypes.func, onClickRemoveItem: PropTypes.func, onClickItem: PropTypes.func, + onCardUpdate: PropTypes.func, }; } @@ -593,6 +594,7 @@ class ProductCartItem extends React.PureComponent { data, index, ext_data, + onCardUpdate, } = this.props; let warning, options, options_data; @@ -710,12 +712,12 @@ class ProductCartItem extends React.PureComponent { construct: ((outvar, value) => { // console.log("construct", outvar, value, options_data); options_data[outvar] = value; - this.setState(options_data); + onCardUpdate(); }), update: ((outvar, value) => { // console.log("update", outvar, value, options_data); if (outvar in options_data) options_data[outvar] = value; - this.setState(options_data); + onCardUpdate(); }) }} />) : null) } @@ -848,6 +850,7 @@ class Cart extends React.PureComponent { data: PropTypes.object.isRequired, onToggleOverlayRemove: PropTypes.func, onClickRemoveItem: PropTypes.func, + onCardUpdate: PropTypes.func, onClickItem: PropTypes.func, }; } @@ -862,6 +865,7 @@ class Cart extends React.PureComponent { onToggleOverlayRemove, onClickRemoveItem, onClickItem, + onCardUpdate, } = this.props; const products = data.items.map((item, index) => { @@ -883,6 +887,7 @@ class Cart extends React.PureComponent { ext_data={ext_data} onToggleOverlayRemove={onToggleOverlayRemove} onClickRemoveItem={onClickRemoveItem} + onCardUpdate={onCardUpdate} onClickItem={onClickItem} model={item}> @@ -1654,6 +1659,7 @@ class Shop extends React.PureComponent { this.handleClickShowOrder = this.handleClickShowOrder.bind(this); this.handleClickOpenImport = this.handleClickOpenImport.bind(this); this.handleLoadCustomConf = this.handleLoadCustomConf.bind(this); + this.handleCardsUpdated = this.handleCardsUpdated.bind(this); this.timer = null; this.timer_remove = null; @@ -1691,9 +1697,7 @@ class Shop extends React.PureComponent { (prevState.columns.cart.items !== this.state.columns.cart.items) || (prevState.currentMode !== this.state.currentMode) ) { - this.checkAlerts( - prevState.columns.cart.items, - this.state.columns.cart.items); + this.checkAlerts(this.state.columns.cart.items); } if (this.state.newCardJustAdded) { @@ -1709,6 +1713,10 @@ class Shop extends React.PureComponent { clearTimeout(this.timer); } + handleCardsUpdated() { + this.checkAlerts(this.state.columns.cart.items); + } + handleCrateModeChange(mode) { this.setState({ currentMode: mode, @@ -2052,7 +2060,7 @@ class Shop extends React.PureComponent { }); } - checkAlerts(prevItems, newItems) { + checkAlerts(newItems) { console.log('--- START CHECKING CRATE WARNING ---'); const { @@ -2444,6 +2452,8 @@ class Shop extends React.PureComponent { onToggleOverlayRemove={this.handleToggleOverlayRemove} onClickRemoveItem={this.handleDeleteItem} onClickItem={this.handleShowOverlayRemove}> + onClickRemoveItem={this.handleDeleteItem} + onCardUpdate={this.handleCardsUpdated}> } rules={Object.values(rules).filter(rule => rule)}>