Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/frequent_items/store/index.js')
-rw-r--r--app/assets/javascripts/frequent_items/store/index.js29
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());
};