|
@@ -1,9 +1,10 @@
|
|
|
-import { SET_PRODUCTS, SET_LOADING_PRODUCTS, SET_PRODUCT_WITH_VARIANT } from '@/constants/mutationTypes'
|
|
|
-import { INIT_PRODUCTS, SELECT_PRODUCT, ADD_TO_CART } from '@/constants/actionTypes'
|
|
|
+import { SET_PRODUCTS, SET_LOADING_PRODUCTS, SET_SHOW_PRODUCT_FORM, SET_PRODUCT_WITH_VARIANT, ADD_PRODUCT } from '@/constants/mutationTypes'
|
|
|
+import { INIT_PRODUCTS, SHOW_PRODUCT_FORM, HIDE_PRODUCT_FORM, SUBMIT_PRODUCT, CREATE_PRODUCT, RECEIVE_PRODUCT, SELECT_PRODUCT, ADD_TO_CART } from '@/constants/actionTypes'
|
|
|
|
|
|
const initialState = {
|
|
|
products: [],
|
|
|
loadingProducts: false,
|
|
|
+ showingProductForm: false,
|
|
|
showVariants: false,
|
|
|
productWithVariant: null
|
|
|
}
|
|
@@ -11,6 +12,7 @@ const initialState = {
|
|
|
const state = {
|
|
|
products: initialState.products,
|
|
|
loadingProducts: !initialState.loadingProducts,
|
|
|
+ showingProductForm: initialState.showingProductForm,
|
|
|
showVariants: initialState.showVariants,
|
|
|
productWithVariant: initialState.productWithVariant
|
|
|
}
|
|
@@ -30,6 +32,13 @@ const getters = {
|
|
|
loadingProducts(state) {
|
|
|
return state.loadingProducts
|
|
|
},
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} state
|
|
|
+ */
|
|
|
+ showingProductForm(state) {
|
|
|
+ return state.showingProductForm
|
|
|
+ },
|
|
|
/**
|
|
|
*
|
|
|
* @param {*} state
|
|
@@ -63,6 +72,22 @@ const mutations = {
|
|
|
[SET_LOADING_PRODUCTS] (state, payload) {
|
|
|
state.loadingProducts = !!payload
|
|
|
},
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} state
|
|
|
+ * @param {*} payload
|
|
|
+ */
|
|
|
+ [SET_SHOW_PRODUCT_FORM] (state, payload) {
|
|
|
+ state.showingProductForm = !!payload
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} state
|
|
|
+ * @param {*} payload
|
|
|
+ */
|
|
|
+ [ADD_PRODUCT] (state, payload) {
|
|
|
+ state.products = [payload, ...state.products]
|
|
|
+ },
|
|
|
/**
|
|
|
*
|
|
|
* @param {*} state
|
|
@@ -83,6 +108,40 @@ const actions = {
|
|
|
commit(SET_PRODUCTS, payload)
|
|
|
commit(SET_LOADING_PRODUCTS)
|
|
|
},
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} param0
|
|
|
+ * @param {*} payload
|
|
|
+ */
|
|
|
+ [SHOW_PRODUCT_FORM] ({ commit }) {
|
|
|
+ commit(SET_SHOW_PRODUCT_FORM, true)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} param0
|
|
|
+ */
|
|
|
+ [HIDE_PRODUCT_FORM] ({ commit }) {
|
|
|
+ commit(SET_SHOW_PRODUCT_FORM, false)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} param0
|
|
|
+ * @param {*} payload
|
|
|
+ */
|
|
|
+ [SUBMIT_PRODUCT] ({ commit, dispatch }, payload) {
|
|
|
+ commit(SET_LOADING_PRODUCTS, true)
|
|
|
+ dispatch(CREATE_PRODUCT, payload)
|
|
|
+ dispatch(HIDE_PRODUCT_FORM)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} param0
|
|
|
+ * @param {*} payload
|
|
|
+ */
|
|
|
+ [RECEIVE_PRODUCT] ({ commit }, payload) {
|
|
|
+ commit(ADD_PRODUCT, payload)
|
|
|
+ commit(SET_LOADING_PRODUCTS, false)
|
|
|
+ },
|
|
|
/**
|
|
|
*
|
|
|
* @param {*} param0
|