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;
|
||||
50
frontend/src/store/modules/dialogs.js
Normal file
50
frontend/src/store/modules/dialogs.js
Normal file
@@ -0,0 +1,50 @@
|
||||
const state = {
|
||||
openDialogs: []
|
||||
};
|
||||
|
||||
const getters = {
|
||||
openDialogs: (state) => state.openDialogs
|
||||
};
|
||||
|
||||
let minimizing = false;
|
||||
const mutations = {
|
||||
addOpenDialog(state, dialog) {
|
||||
if (!state.openDialogs.find((d) => d.dialog.name === dialog.dialog.name)) {
|
||||
state.openDialogs.push(dialog);
|
||||
}
|
||||
},
|
||||
removeOpenDialog(state, dialogName) {
|
||||
state.openDialogs = state.openDialogs.filter((dialog) => dialog.dialog.name !== dialogName);
|
||||
},
|
||||
toggleDialogMinimize(state, dialogName) {
|
||||
if (minimizing) {
|
||||
return;
|
||||
}
|
||||
minimizing = true;
|
||||
const dialog = state.openDialogs.find((dialog) => dialog.dialog.name === dialogName);
|
||||
if (dialog) {
|
||||
dialog.dialog.toggleMinimize();
|
||||
}
|
||||
minimizing = false;
|
||||
}
|
||||
};
|
||||
|
||||
const actions = {
|
||||
addOpenDialog({ commit }, dialog) {
|
||||
commit('addOpenDialog', dialog);
|
||||
},
|
||||
removeOpenDialog({ commit }, dialogName) {
|
||||
commit('removeOpenDialog', dialogName);
|
||||
},
|
||||
toggleDialogMinimize({ commit }, dialogName) {
|
||||
commit('toggleDialogMinimize', dialogName);
|
||||
}
|
||||
};
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
state,
|
||||
getters,
|
||||
mutations,
|
||||
actions
|
||||
};
|
||||
Reference in New Issue
Block a user