| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- import _ from 'lodash'
 
- import Vue from 'vue'
 
- import Vuex from 'vuex'
 
- import pathify from 'vuex-pathify' // eslint-disable-line import/no-duplicates
 
- import { make } from 'vuex-pathify' // eslint-disable-line import/no-duplicates
 
- import page from './page'
 
- import site from './site'
 
- import user from './user'
 
- /* global WIKI */
 
- Vue.use(Vuex)
 
- const state = {
 
-   loadingStack: [],
 
-   notification: {
 
-     message: '',
 
-     style: 'primary',
 
-     icon: 'cached',
 
-     isActive: false
 
-   }
 
- }
 
- export default new Vuex.Store({
 
-   strict: process.env.NODE_ENV !== 'production',
 
-   plugins: [
 
-     pathify.plugin
 
-   ],
 
-   state,
 
-   getters: {
 
-     isLoading: state => { return state.loadingStack.length > 0 }
 
-   },
 
-   mutations: {
 
-     ...make.mutations(state),
 
-     loadingStart (st, stackName) {
 
-       st.loadingStack = _.union(st.loadingStack, [stackName])
 
-     },
 
-     loadingStop (st, stackName) {
 
-       st.loadingStack = _.without(st.loadingStack, stackName)
 
-     },
 
-     showNotification (st, opts) {
 
-       st.notification = _.defaults(opts, {
 
-         message: '',
 
-         style: 'primary',
 
-         icon: 'cached',
 
-         isActive: true
 
-       })
 
-     },
 
-     updateNotificationState (st, newState) {
 
-       st.notification.isActive = newState
 
-     },
 
-     pushGraphError (st, err) {
 
-       WIKI.$store.commit('showNotification', {
 
-         style: 'red',
 
-         message: _.get(err, 'graphQLErrors[0].message', err.message),
 
-         icon: 'alert'
 
-       })
 
-     }
 
-   },
 
-   actions: { },
 
-   modules: {
 
-     page,
 
-     site,
 
-     user
 
-   }
 
- })
 
 
  |