Replace vuex by pinia #7
@ -25,7 +25,11 @@ export default defineComponent({
|
||||
}
|
||||
},
|
||||
beforeCreate() {
|
||||
const store = localStorage.getItem("store");
|
||||
useSessionStore().restoreFromLocalStorage();
|
||||
|
||||
|
||||
/*
|
||||
const store = localStorage.getItem("session");
|
||||
if (!store)
|
||||
return;
|
||||
|
||||
@ -33,6 +37,7 @@ export default defineComponent({
|
||||
if (!restoredState)
|
||||
return;
|
||||
|
||||
console.log("session", restoredState)
|
||||
const sessionStore = useSessionStore();
|
||||
sessionStore.User = restoredState.Session.User;
|
||||
sessionStore.Token = restoredState.Session.Token;
|
||||
@ -51,7 +56,7 @@ export default defineComponent({
|
||||
|
||||
const settingsStore = useSettingsStore();
|
||||
settingsStore.ShowMenu = restoredState.ShowMenu;
|
||||
settingsStore.ExpandMenu = restoredState.ExpandMenu;
|
||||
settingsStore.ExpandMenu = restoredState.ExpandMenu;*/
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
@ -2,7 +2,7 @@ import { createApp } from 'vue'
|
||||
import App from './App.vue'
|
||||
import './index.css'
|
||||
import router from './router'
|
||||
import { createPinia } from 'pinia'
|
||||
import { createPinia, SubscriptionCallbackMutation } from 'pinia'
|
||||
import { useBudgetsStore } from './stores/budget';
|
||||
import { useSessionStore } from './stores/session';
|
||||
import { useSettingsStore } from './stores/settings';
|
||||
@ -22,22 +22,11 @@ router.beforeEach(async (to, from, next) => {
|
||||
next();
|
||||
})
|
||||
|
||||
function saveStateToLocalStorage() {
|
||||
const sessionStore = useSessionStore();
|
||||
const budgetStore = useBudgetsStore();
|
||||
const accountStore = useAccountStore();
|
||||
const settingsStore = useSettingsStore();
|
||||
let persistedState = {
|
||||
Session: sessionStore,
|
||||
CurrentBudgetID: budgetStore.CurrentBudgetID,
|
||||
CurrentAccountID: accountStore.CurrentAccountID,
|
||||
ExpandMenu: settingsStore.ExpandMenu,
|
||||
ShowMenu: settingsStore.ShowMenu
|
||||
}
|
||||
localStorage.setItem('store', JSON.stringify(persistedState));
|
||||
|
||||
function saveStateToLocalStorage(mutation : SubscriptionCallbackMutation<any>, state : any) {
|
||||
localStorage.setItem(mutation.storeId, JSON.stringify(state));
|
||||
console.log("saving to local storage", mutation)
|
||||
}
|
||||
|
||||
useSettingsStore().$subscribe(() => saveStateToLocalStorage);
|
||||
useBudgetsStore().$subscribe(() => saveStateToLocalStorage);
|
||||
useSessionStore().$subscribe(() => saveStateToLocalStorage);
|
||||
useSettingsStore().$subscribe(saveStateToLocalStorage);
|
||||
useBudgetsStore().$subscribe(saveStateToLocalStorage);
|
||||
useSessionStore().$subscribe(saveStateToLocalStorage);
|
@ -48,6 +48,11 @@ export const useSessionStore = defineStore('session', {
|
||||
},
|
||||
logout() {
|
||||
this.$reset()
|
||||
},
|
||||
restoreFromLocalStorage() {
|
||||
const json = localStorage.getItem("session");
|
||||
const value = JSON.parse(json || "{}");
|
||||
Object.assign(this, value);
|
||||
}
|
||||
}
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user