added login, first preparation for menu
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
import { createStore } from 'vuex';
|
||||
import dialogs from './modules/dialogs';
|
||||
import loadMenu from '../utils/menuLoader.js';
|
||||
|
||||
const store = createStore({
|
||||
state: {
|
||||
isLoggedIn: false,
|
||||
user: null,
|
||||
language: navigator.language.startsWith('de') ? 'de' : 'en',
|
||||
menu: [],
|
||||
},
|
||||
mutations: {
|
||||
dologin(state, user) {
|
||||
@@ -13,6 +15,7 @@ const store = createStore({
|
||||
state.user = user;
|
||||
localStorage.setItem('isLoggedIn', 'true');
|
||||
localStorage.setItem('user', JSON.stringify(user));
|
||||
console.log(state.user);
|
||||
},
|
||||
dologout(state) {
|
||||
state.isLoggedIn = false;
|
||||
@@ -23,9 +26,9 @@ const store = createStore({
|
||||
loadLoginState(state) {
|
||||
const isLoggedIn = localStorage.getItem('isLoggedIn') === 'true';
|
||||
let userData = {};
|
||||
try {
|
||||
try {
|
||||
userData = localStorage.getItem('user') ? JSON.parse(localStorage.getItem('user')) : {};
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
const user = userData;
|
||||
@@ -34,11 +37,16 @@ const store = createStore({
|
||||
},
|
||||
setLanguage(state, language) {
|
||||
state.language = language;
|
||||
},
|
||||
setMenu(state, menu) {
|
||||
state.menu = menu;
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
login({ commit }, user) {
|
||||
async login({ commit, dispatch }, user) { // Dispatch hinzufügen
|
||||
commit('dologin', user);
|
||||
await dispatch('loadMenu'); // Korrekte Verwendung von dispatch
|
||||
dispatch('startMenuReload');
|
||||
},
|
||||
logout({ commit }) {
|
||||
commit('dologout');
|
||||
@@ -49,11 +57,26 @@ const store = createStore({
|
||||
setLanguage({ commit }, language) {
|
||||
commit('setLanguage', language);
|
||||
},
|
||||
async loadMenu({ commit }) {
|
||||
try {
|
||||
const menu = await loadMenu();
|
||||
commit('setMenu', menu);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
commit('setMenu', []);
|
||||
}
|
||||
},
|
||||
startMenuReload({ dispatch }) {
|
||||
setInterval(() => {
|
||||
dispatch('loadMenu');
|
||||
}, 5000);
|
||||
},
|
||||
},
|
||||
getters: {
|
||||
isLoggedIn: state => state.isLoggedIn,
|
||||
user: state => state.user,
|
||||
language: state => state.language,
|
||||
menu: state => state.menu,
|
||||
},
|
||||
modules: {
|
||||
dialogs,
|
||||
|
||||
Reference in New Issue
Block a user