diff options
| author | Adam T. Carpenter <atc@53hor.net> | 2020-11-08 21:26:34 -0500 | 
|---|---|---|
| committer | Adam T. Carpenter <atc@53hor.net> | 2020-11-08 21:26:34 -0500 | 
| commit | c5280144de096c274f185fade287ccd63b954ceb (patch) | |
| tree | 169f1c2ad86c68e5ccb37494398c5e2db33dca3d /iridescence/src/store | |
| parent | 7dd36c0e699a1154c7163f25bf488fbd63edeafe (diff) | |
| download | theglassyladies-c5280144de096c274f185fade287ccd63b954ceb.tar.xz theglassyladies-c5280144de096c274f185fade287ccd63b954ceb.zip | |
fixed up product models and api calls, working on new product form
Diffstat (limited to 'iridescence/src/store')
| -rw-r--r-- | iridescence/src/store/index.js | 41 | 
1 files changed, 33 insertions, 8 deletions
| diff --git a/iridescence/src/store/index.js b/iridescence/src/store/index.js index 2b24816..fc77f79 100644 --- a/iridescence/src/store/index.js +++ b/iridescence/src/store/index.js @@ -10,12 +10,16 @@ export default new Vuex.Store({    state: {      searchTerm: "",      products: [], -    busy: false +    busy: false, +    progress: 100    },    getters: {      busy(state) {        return state.busy;      }, +    progress(state) { +      return state.progress; +    },      products(state) {        return state.products.filter(item => {          return JSON.stringify(item) @@ -26,19 +30,40 @@ export default new Vuex.Store({    },    mutations: {      searchTerm(state, term) { -      state.searchTerm = term; +      if (term) { +        state.searchTerm = term; +      }      },      setProducts(state, products) { -      state.products = products; +      if (products) { +        state.products = products; +      } +    }, +    replaceProduct(state, product) { +      let index = state.products.findIndex(p => p.id == product.id); + +      if (product && index >= 0) { +        state.products[index] = product; +      } +    }, +    addProduct(state, product) { +      if (product) { +        state.products.push(product); +      }      }    },    actions: { -    refreshProducts(context) { -      context.commit("setProducts", dichroism.getProducts()); +    async refreshProducts(context) { +      const products = await dichroism.getProducts(); +      context.commit("setProducts", products); +    }, +    async updateProduct(context, product) { +      const updatedProduct = await dichroism.updateProduct(product); +      context.dispatch("replaceProduct", updatedProduct);      }, -    updateProduct(context, product) { -      dichroism.updateProduct(product); -      context.dispatch("refreshProducts"); +    async createProduct(context, product) { +      const newProduct = await dichroism.createProduct(product); +      context.dispatch("addProduct", newProduct);      }    },    modules: {} |