inital commit
This commit is contained in:
102
src/store/index.js
Normal file
102
src/store/index.js
Normal file
@@ -0,0 +1,102 @@
|
||||
import { createStore } from 'vuex';
|
||||
import axios from 'axios';
|
||||
import router from '../router'; // Importieren des Routers
|
||||
|
||||
let user = [];
|
||||
try {
|
||||
user = JSON.parse(localStorage.getItem('user')) || null;
|
||||
} catch (e) {
|
||||
user = [];
|
||||
}
|
||||
|
||||
export default createStore({
|
||||
state: {
|
||||
isLoggedIn: !!localStorage.getItem('isLoggedIn'),
|
||||
user: user,
|
||||
token: localStorage.getItem('token') || '',
|
||||
menuData: [],
|
||||
pageContent: '',
|
||||
},
|
||||
mutations: {
|
||||
setLogin(state, { user, token }) {
|
||||
console.log(1);
|
||||
state.isLoggedIn = true;
|
||||
console.log(2);
|
||||
state.user = user;
|
||||
console.log(3);
|
||||
state.token = token;
|
||||
console.log(4);
|
||||
localStorage.setItem('isLoggedIn', 'true');
|
||||
console.log(5);
|
||||
localStorage.setItem('user', JSON.stringify(user));
|
||||
console.log(6);
|
||||
localStorage.setItem('token', token);
|
||||
console.log(7);
|
||||
},
|
||||
logout(state) {
|
||||
state.isLoggedIn = false;
|
||||
state.user = null;
|
||||
state.token = '';
|
||||
localStorage.removeItem('isLoggedIn');
|
||||
localStorage.removeItem('user');
|
||||
localStorage.removeItem('token');
|
||||
router.push('/');
|
||||
},
|
||||
setMenuData(state, menuData) {
|
||||
state.menuData = menuData;
|
||||
},
|
||||
SET_PAGE_CONTENT(state, content) {
|
||||
state.pageContent = content;
|
||||
},
|
||||
UPDATE_PAGE_CONTENT(state, content) {
|
||||
state.pageContent = content;
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
async loadMenuData({ commit }) {
|
||||
try {
|
||||
const response = await fetch('http://localhost:3000/api/menu-data');
|
||||
const menuData = await response.json();
|
||||
commit('setMenuData', menuData);
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Laden der Menü-Daten:', error);
|
||||
}
|
||||
},
|
||||
async loadPageContent({ commit }, link) {
|
||||
try {
|
||||
const response = await axios.get(`http://localhost:3000/api/page-content?link=${link}`);
|
||||
commit('SET_PAGE_CONTENT', response.data.content || '');
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Laden des Seiteninhalts:', error);
|
||||
}
|
||||
},
|
||||
async savePageContent({ state }, { link, name }) {
|
||||
try {
|
||||
const contentToSave = state.pageContent;
|
||||
|
||||
await axios.post('http://localhost:3000/api/page-content', {
|
||||
link,
|
||||
name,
|
||||
content: contentToSave,
|
||||
});
|
||||
|
||||
alert('Seiteninhalt gespeichert!');
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Speichern des Seiteninhalts:', error);
|
||||
}
|
||||
},
|
||||
login({ commit }, { user, token }) {
|
||||
console.log('do login');
|
||||
commit('setLogin', { user, token });
|
||||
},
|
||||
logout({ commit }) {
|
||||
commit('logout');
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
isLoggedIn: state => state.isLoggedIn,
|
||||
user: state => state.user,
|
||||
menuData: state => state.menuData,
|
||||
pageContent: state => state.pageContent,
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user