|
@@ -7,9 +7,17 @@ const state = {
|
|
|
default: [],
|
|
|
values: []
|
|
|
},
|
|
|
+ filteredProducts: {
|
|
|
+ default: [],
|
|
|
+ values: []
|
|
|
+ },
|
|
|
productWithVariant: {
|
|
|
default: null,
|
|
|
value: null
|
|
|
+ },
|
|
|
+ showProductForm: {
|
|
|
+ default: false,
|
|
|
+ value: false
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -26,7 +34,7 @@ const getters = {
|
|
|
* @param {*} state
|
|
|
*/
|
|
|
visibleProducts(state) {
|
|
|
- return state.products.values
|
|
|
+ return state.filteredProducts.values.length === 0 ? state.products.values : state.filteredProducts.values
|
|
|
},
|
|
|
/**
|
|
|
*
|
|
@@ -34,6 +42,13 @@ const getters = {
|
|
|
*/
|
|
|
productWithVariant(state) {
|
|
|
return state.productWithVariant.value
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} state
|
|
|
+ */
|
|
|
+ showProductForm(state) {
|
|
|
+ return state.showProductForm.value
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -53,18 +68,26 @@ const mutations = {
|
|
|
*/
|
|
|
setProductWithVariant(state, payload) {
|
|
|
state.productWithVariant.value = value
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-const actions = {
|
|
|
+ },
|
|
|
/**
|
|
|
*
|
|
|
- * @param {*} param0
|
|
|
+ * @param {*} state
|
|
|
* @param {*} payload
|
|
|
*/
|
|
|
- setProducts({ commit }, payload) {
|
|
|
- commit('setProducts', payload)
|
|
|
+ setFilteredProducts(state, payload) {
|
|
|
+ state.filteredProducts.values = [...payload]
|
|
|
},
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} state
|
|
|
+ * @param {*} payload
|
|
|
+ */
|
|
|
+ setShowProductForm(state, payload) {
|
|
|
+ state.showProductForm.value = !!payload
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const actions = {
|
|
|
/**
|
|
|
*
|
|
|
* @param {*} param0
|
|
@@ -78,6 +101,14 @@ const actions = {
|
|
|
|
|
|
dispatch('addToCart', payload.variants[0])
|
|
|
},
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} param0
|
|
|
+ * @param {*} payload
|
|
|
+ */
|
|
|
+ filterProducts({ commit }, payload) {
|
|
|
+ commit('setFilteredProducts', payload)
|
|
|
+ },
|
|
|
/**
|
|
|
*
|
|
|
* @param {*} param0
|
|
@@ -89,6 +120,37 @@ const actions = {
|
|
|
if (!payload) return
|
|
|
|
|
|
dispatch('addToCart', payload)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} param0
|
|
|
+ * @param {*} payload
|
|
|
+ */
|
|
|
+ showProductForm({ commit }) {
|
|
|
+ commit('setShowProductForm', true)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} param0
|
|
|
+ * @param {*} payload
|
|
|
+ */
|
|
|
+ hideProductForm({ commit }) {
|
|
|
+ commit('setShowProductForm', false)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param {*} param0
|
|
|
+ * @param {*} payload
|
|
|
+ */
|
|
|
+ submitProduct({ commit, dispatch }, payload) {
|
|
|
+ if (payload) {
|
|
|
+ if (!payload.name || !payload.price) {
|
|
|
+ dispatch('notify', 'Complete los campos para guardar')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ dispatch('hideProductForm')
|
|
|
}
|
|
|
}
|
|
|
|