|
@@ -22,7 +22,7 @@ function createStore(reducer) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-function reducer(state, {type, productName, productAmount, summ}){
|
|
|
+function reducer(state, {type, productName, productAmount, sum}){
|
|
|
if (!state){ //начальная уборка в ларьке:
|
|
|
return {
|
|
|
пиво: {
|
|
@@ -37,29 +37,26 @@ function reducer(state, {type, productName, productAmount, summ}){
|
|
|
amount: 100,
|
|
|
price: 90,
|
|
|
},
|
|
|
- касса: 0
|
|
|
}
|
|
|
}
|
|
|
- if (type === 'Купить' && productAmount <= state[productName].amount && summ >= state[productName].price * productAmount){ //если тип action - КУПИТЬ, то:
|
|
|
+ if (type === 'Купить' && productAmount <= state[productName].amount && sum >= state[productName].price * productAmount){ //если тип action - КУПИТЬ, то:
|
|
|
return {
|
|
|
...state, //берем все что было из ассортимента
|
|
|
[productName]: {
|
|
|
amount: state[productName].amount - productAmount,
|
|
|
price: state[productName].price
|
|
|
},
|
|
|
- касса: state.касса + state[productName].price * productAmount
|
|
|
- //и уменьшаем то, что покупается на количество
|
|
|
}
|
|
|
}
|
|
|
return state //если мы не поняли, что от нас просят в `action` - оставляем все как есть
|
|
|
}
|
|
|
|
|
|
-function actionCreator (type, productName, productAmount, summ){
|
|
|
+function actionCreator (type, productName, productAmount, sum){
|
|
|
return {
|
|
|
type,
|
|
|
productName,
|
|
|
productAmount,
|
|
|
- summ
|
|
|
+ sum
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -100,7 +97,6 @@ buttonBuy.onclick = () => {
|
|
|
}
|
|
|
|
|
|
for (const product in store.getState()){
|
|
|
- if (product === 'касса') continue
|
|
|
|
|
|
const productCard = document.createElement('div')
|
|
|
productCard.classList.add('productCard')
|
|
@@ -121,16 +117,12 @@ for (const product in store.getState()){
|
|
|
showCase.append(productCard)
|
|
|
|
|
|
const productOption = document.createElement('option')
|
|
|
- productOption.value = productOption.innerText = product
|
|
|
+ productOption.innerText = product
|
|
|
productSelect.append(productOption)
|
|
|
|
|
|
- const productPriceUnsubscribe = store.subscribe( () => {
|
|
|
- productPrice.innerText = store.getState()[product].price + ' грн'
|
|
|
- })
|
|
|
-
|
|
|
- const productQuantityUnsubscribe = store.subscribe( () => {
|
|
|
+ const productAmountChange= store.subscribe( () => {
|
|
|
productAmount.innerText = store.getState()[product].amount + ' шт'
|
|
|
- } )
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
|