From cb1fd8ede6d6dea36dd32099180df24588a287ee Mon Sep 17 00:00:00 2001 From: John Cleaver Date: Sat, 3 Mar 2018 17:32:52 -0500 Subject: [PATCH] Add vuex store. --- src/main.js | 2 ++ src/store/index.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/store/index.js diff --git a/src/main.js b/src/main.js index 57e574f..50ba9db 100644 --- a/src/main.js +++ b/src/main.js @@ -3,6 +3,7 @@ import Vue from 'vue' import App from './App' import router from './router' +import store from './store' require('./assets/sass/main.scss') @@ -12,6 +13,7 @@ Vue.config.productionTip = false new Vue({ el: '#app', router, + store, components: { App }, template: '' }) diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..0b3d84b --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,28 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex) + +export default new Vuex.Store({ + state: { + StoredItems: {} + }, + getters: { + IsBundleItemRedeemed: (state) => (BundleItem) => { + return state.StoredItems[BundleItem.bundle.id].hasOwnProperty(BundleItem.item.id) + } + }, + mutations: { + RedeemItem (state, BundleItem) { + state.StoredItems[BundleItem.bundle.id][BundleItem.item.id] = 1 + }, + UndoRedeemItem (state, BundleItem) { + delete state.StoredItems[BundleItem.bundle.id][BundleItem.item.id] + }, + AddBundles (state, Bundles) { + for (let bundle of Bundles) { + state.StoredItems.set(bundle.id, {}) + } + } + } +})