summaryrefslogtreecommitdiff
path: root/iridescence/src/store
diff options
context:
space:
mode:
authorAdam T. Carpenter <atc@53hor.net>2020-11-11 20:07:12 -0500
committerAdam T. Carpenter <atc@53hor.net>2020-11-11 20:07:12 -0500
commit7381a7033231e6454a37fd64b1f3de4e8d59355f (patch)
tree7ae54976c2d036e0fe7cb199a7f6facdd09bbb6d /iridescence/src/store
parentc5280144de096c274f185fade287ccd63b954ceb (diff)
downloadtheglassyladies-7381a7033231e6454a37fd64b1f3de4e8d59355f.tar.xz
theglassyladies-7381a7033231e6454a37fd64b1f3de4e8d59355f.zip
Kind of flailing with the UI; lots of API bugfixes though.
Diffstat (limited to 'iridescence/src/store')
-rw-r--r--iridescence/src/store/index.js33
1 files changed, 26 insertions, 7 deletions
diff --git a/iridescence/src/store/index.js b/iridescence/src/store/index.js
index fc77f79..f98fd87 100644
--- a/iridescence/src/store/index.js
+++ b/iridescence/src/store/index.js
@@ -29,6 +29,9 @@ export default new Vuex.Store({
}
},
mutations: {
+ toggleBusy(state) {
+ state.busy = !state.busy;
+ },
searchTerm(state, term) {
if (term) {
state.searchTerm = term;
@@ -40,9 +43,13 @@ export default new Vuex.Store({
}
},
replaceProduct(state, product) {
+ if (!product || !product.id) {
+ return;
+ }
+
let index = state.products.findIndex(p => p.id == product.id);
- if (product && index >= 0) {
+ if (index) {
state.products[index] = product;
}
},
@@ -53,17 +60,29 @@ export default new Vuex.Store({
}
},
actions: {
- async refreshProducts(context) {
+ async refreshProducts({ commit }) {
+ commit("toggleBusy");
const products = await dichroism.getProducts();
- context.commit("setProducts", products);
+ commit("setProducts", products);
+ commit("toggleBusy");
},
- async updateProduct(context, product) {
+ async updateProduct({ commit }, product) {
+ commit("toggleBusy");
const updatedProduct = await dichroism.updateProduct(product);
- context.dispatch("replaceProduct", updatedProduct);
+ commit("replaceProduct", updatedProduct);
+ commit("toggleBusy");
},
- async createProduct(context, product) {
+ async createProduct({ commit }, product) {
+ commit("toggleBusy");
const newProduct = await dichroism.createProduct(product);
- context.dispatch("addProduct", newProduct);
+ commit("addProduct", newProduct);
+ commit("toggleBusy");
+ },
+ async createPhotoSet({ commit }, file) {
+ commit("toggleBusy");
+ const photoSet = await dichroism.createPhoto(file);
+ commit("toggleBusy");
+ return photoSet;
}
},
modules: {}