diff options
Diffstat (limited to 'app/assets/javascripts/frequent_items/store/index.js')
-rw-r--r-- | app/assets/javascripts/frequent_items/store/index.js | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/app/assets/javascripts/frequent_items/store/index.js b/app/assets/javascripts/frequent_items/store/index.js index 83176d69802..1faacff84e5 100644 --- a/app/assets/javascripts/frequent_items/store/index.js +++ b/app/assets/javascripts/frequent_items/store/index.js @@ -1,17 +1,28 @@ -import Vue from 'vue'; import Vuex from 'vuex'; +import { FREQUENT_ITEMS_DROPDOWNS } from '../constants'; import * as actions from './actions'; import * as getters from './getters'; import mutations from './mutations'; import state from './state'; -Vue.use(Vuex); +export const createFrequentItemsModule = (initState = {}) => ({ + namespaced: true, + actions, + getters, + mutations, + state: state(initState), +}); -export const createStore = (initState = {}) => { - return new Vuex.Store({ - actions, - getters, - mutations, - state: state(initState), - }); +export const createStoreOptions = () => ({ + modules: FREQUENT_ITEMS_DROPDOWNS.reduce( + (acc, { namespace, vuexModule }) => + Object.assign(acc, { + [vuexModule]: createFrequentItemsModule({ dropdownType: namespace }), + }), + {}, + ), +}); + +export const createStore = () => { + return new Vuex.Store(createStoreOptions()); }; |