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, {}) + } + } + } +})