diff options
| author | Pitu <[email protected]> | 2018-09-16 01:09:02 -0300 |
|---|---|---|
| committer | Pitu <[email protected]> | 2018-09-16 01:09:02 -0300 |
| commit | fe10a00ba9a3c30d8718ca004ccd19518466f5bd (patch) | |
| tree | 369752f59a88dd03df1e9752be0ba166bf93c933 /src/site/store/index.js | |
| parent | First version of start script (diff) | |
| download | host.fuwn.me-fe10a00ba9a3c30d8718ca004ccd19518466f5bd.tar.xz host.fuwn.me-fe10a00ba9a3c30d8718ca004ccd19518466f5bd.zip | |
Site
Diffstat (limited to 'src/site/store/index.js')
| -rw-r--r-- | src/site/store/index.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/site/store/index.js b/src/site/store/index.js new file mode 100644 index 0000000..3977093 --- /dev/null +++ b/src/site/store/index.js @@ -0,0 +1,51 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; + +Vue.use(Vuex); + +const state = { + loggedIn: false, + user: {}, + token: null, + config: null +}; + +/* eslint-disable no-shadow */ +const mutations = { + loggedIn(state, payload) { + state.loggedIn = payload; + }, + user(state, payload) { + if (!payload) { + state.user = {}; + localStorage.removeItem('ls-user'); + return; + } + localStorage.setItem('ls-user', JSON.stringify(payload)); + state.user = payload; + }, + token(state, payload) { + if (!payload) { + localStorage.removeItem('ls-token'); + state.token = null; + return; + } + localStorage.setItem('ls-token', payload); + setAuthorizationHeader(payload); + state.token = payload; + }, + config(state, payload) { + state.config = payload; + } +}; + +const setAuthorizationHeader = payload => { + Vue.axios.defaults.headers.common.Authorization = payload ? `Bearer ${payload}` : ''; +}; + +const store = new Vuex.Store({ + state, + mutations +}); + +export default store; |