import { PUSH_TO_CART, SET_CART_TOTAL } from '@/constants/mutationTypes' import { ADD_TO_CART, CHANGE_CART_TOTAL } from '@/constants/actionTypes' const initialState = { cartItems: [], cartTotal: 0 } const state = { cartItems: initialState.cartItems, cartTotal: initialState.cartTotal } const getters = { /** * * @param {*} state */ cartItems(state) { return state.cartItems }, /** * * @param {*} state */ cartTotal(state) { return state.cartTotal } } const mutations = { /** * * @param {*} state * @param {*} payload */ [PUSH_TO_CART] (state, payload) { let productFound = state.cartItems.find(item => item.id === payload.id) console.log(payload) if (productFound) { productFound.quantity = productFound.quantity + 1 return } state.cartItems = [payload, ...state.cartItems] }, /** * * @param {*} state * @param {*} payload */ [SET_CART_TOTAL] (state, payload) { state.cartTotal = payload } } const actions = { /** * * @param {*} param0 * @param {*} payload */ [ADD_TO_CART] ({ commit }, payload) { commit(PUSH_TO_CART, payload) }, /** * * @param {*} param0 * @param {*} payload */ [CHANGE_CART_TOTAL] ({ commit }, payload) { commit(SET_CART_TOTAL, payload) } } export default { state, getters, mutations, actions }