wikijs-fork/client/store/index.js

47 lines
1.0 KiB
JavaScript
Raw Normal View History

import _ from 'lodash'
import Vue from 'vue'
import Vuex from 'vuex'
2018-07-15 23:16:19 +00:00
import pathify from 'vuex-pathify'
Vue.use(Vuex)
export default new Vuex.Store({
2018-06-10 00:11:00 +00:00
strict: process.env.NODE_ENV !== 'production',
2018-07-15 23:16:19 +00:00
plugins: [
pathify.plugin
],
state: {
loadingStack: [],
notification: {
message: '',
style: 'primary',
icon: 'cached',
isActive: false
}
},
getters: {
isLoading: state => { return state.loadingStack.length > 0 }
},
mutations: {
loadingStart (state, stackName) {
state.loadingStack = _.union(state.loadingStack, [stackName])
},
loadingStop (state, stackName) {
state.loadingStack = _.without(state.loadingStack, stackName)
},
showNotification (state, opts) {
state.notification = _.defaults(opts, {
message: '',
style: 'primary',
icon: 'cached',
isActive: true
})
},
updateNotificationState (state, newState) {
state.notification.isActive = newState
}
},
actions: { },
modules: { }
})