|
@@ -25,6 +25,14 @@ const mutations = {
|
|
|
state.cart = [payload.product, ...state.cart]
|
|
|
}
|
|
|
},
|
|
|
+ subtractFromCart(state, payload) {
|
|
|
+ let finded = state.cart.find(item => item.id == payload.product.id)
|
|
|
+ finded.qty = finded.qty - 1
|
|
|
+ },
|
|
|
+ removeFromCart(state, payload) {
|
|
|
+ let findedIndex = state.cart.findIndex(item => item.id == payload.product.id)
|
|
|
+ state.cart.splice(findedIndex, 1)
|
|
|
+ },
|
|
|
calculateTotal(state) {
|
|
|
let sum = 0
|
|
|
|
|
@@ -38,12 +46,35 @@ const mutations = {
|
|
|
|
|
|
const actions = {
|
|
|
addToCart({ commit, dispatch }, payload) {
|
|
|
- commit('addToCart', payload)
|
|
|
+ commit('addToCart', {
|
|
|
+ product: payload
|
|
|
+ })
|
|
|
+
|
|
|
commit('calculateTotal')
|
|
|
|
|
|
// dispatch('setSelectedProduct', {
|
|
|
// product: null
|
|
|
// })
|
|
|
+ },
|
|
|
+ subtractFromCart({ commit, dispatch}, payload) {
|
|
|
+ if (payload.qty > 1) {
|
|
|
+ commit('subtractFromCart', {
|
|
|
+ product: payload
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ commit('removeFromCart', {
|
|
|
+ product: payload
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ commit('calculateTotal')
|
|
|
+ },
|
|
|
+ removeFromCart({ commit, dispatch }, payload) {
|
|
|
+ commit('removeFromCart', {
|
|
|
+ product: payload
|
|
|
+ })
|
|
|
+
|
|
|
+ commit('calculateTotal')
|
|
|
}
|
|
|
}
|
|
|
|