Replace vuex by pinia #7

Merged
jacob1123 merged 14 commits from pinia into master 2022-02-11 23:20:06 +01:00
3 changed files with 20 additions and 21 deletions
Showing only changes of commit 0e342f2bcf - Show all commits

View File

@ -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>

View File

@ -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);

View File

@ -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);
}
}
})
})