aboutsummaryrefslogtreecommitdiff
path: root/src/site/store/index.js
diff options
context:
space:
mode:
authorPitu <[email protected]>2018-09-16 01:09:02 -0300
committerPitu <[email protected]>2018-09-16 01:09:02 -0300
commitfe10a00ba9a3c30d8718ca004ccd19518466f5bd (patch)
tree369752f59a88dd03df1e9752be0ba166bf93c933 /src/site/store/index.js
parentFirst version of start script (diff)
downloadhost.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.js51
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;