Initial commit
This commit is contained in:
55
frontend/src/store/index.js
Normal file
55
frontend/src/store/index.js
Normal file
@@ -0,0 +1,55 @@
|
||||
import { createStore } from 'vuex';
|
||||
import dialogs from './modules/dialogs';
|
||||
|
||||
const store = createStore({
|
||||
state: {
|
||||
isLoggedIn: false,
|
||||
user: null
|
||||
},
|
||||
mutations: {
|
||||
login(state, user) {
|
||||
state.isLoggedIn = true;
|
||||
state.user = user;
|
||||
localStorage.setItem('isLoggedIn', 'true');
|
||||
localStorage.setItem('user', JSON.stringify(user));
|
||||
},
|
||||
logout(state) {
|
||||
state.isLoggedIn = false;
|
||||
state.user = null;
|
||||
localStorage.removeItem('isLoggedIn');
|
||||
localStorage.removeItem('user');
|
||||
},
|
||||
loadLoginState(state) {
|
||||
const isLoggedIn = localStorage.getItem('isLoggedIn') === 'true';
|
||||
let userData = {};
|
||||
try {
|
||||
userData = localStorage.getItem('user') ? JSON.parse(localStorage.getItem('user')) : {};
|
||||
} catch(e) {
|
||||
|
||||
}
|
||||
const user = userData;
|
||||
state.isLoggedIn = isLoggedIn;
|
||||
state.user = user;
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
login({ commit }, user) {
|
||||
commit('login', user);
|
||||
},
|
||||
logout({ commit }) {
|
||||
commit('logout');
|
||||
},
|
||||
loadLoginState({ commit }) {
|
||||
commit('loadLoginState');
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
isLoggedIn: state => state.isLoggedIn,
|
||||
user: state => state.user
|
||||
},
|
||||
modules: {
|
||||
dialogs,
|
||||
},
|
||||
});
|
||||
|
||||
export default store;
|
||||
Reference in New Issue
Block a user