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() { beforeCreate() {
const store = localStorage.getItem("store"); useSessionStore().restoreFromLocalStorage();
/*
const store = localStorage.getItem("session");
if (!store) if (!store)
return; return;
@ -33,6 +37,7 @@ export default defineComponent({
if (!restoredState) if (!restoredState)
return; return;
console.log("session", restoredState)
const sessionStore = useSessionStore(); const sessionStore = useSessionStore();
sessionStore.User = restoredState.Session.User; sessionStore.User = restoredState.Session.User;
sessionStore.Token = restoredState.Session.Token; sessionStore.Token = restoredState.Session.Token;
@ -51,7 +56,7 @@ export default defineComponent({
const settingsStore = useSettingsStore(); const settingsStore = useSettingsStore();
settingsStore.ShowMenu = restoredState.ShowMenu; settingsStore.ShowMenu = restoredState.ShowMenu;
settingsStore.ExpandMenu = restoredState.ExpandMenu; settingsStore.ExpandMenu = restoredState.ExpandMenu;*/
} }
}) })
</script> </script>

View File

@ -2,7 +2,7 @@ import { createApp } from 'vue'
import App from './App.vue' import App from './App.vue'
import './index.css' import './index.css'
import router from './router' import router from './router'
import { createPinia } from 'pinia' import { createPinia, SubscriptionCallbackMutation } from 'pinia'
import { useBudgetsStore } from './stores/budget'; import { useBudgetsStore } from './stores/budget';
import { useSessionStore } from './stores/session'; import { useSessionStore } from './stores/session';
import { useSettingsStore } from './stores/settings'; import { useSettingsStore } from './stores/settings';
@ -22,22 +22,11 @@ router.beforeEach(async (to, from, next) => {
next(); next();
}) })
function saveStateToLocalStorage() { function saveStateToLocalStorage(mutation : SubscriptionCallbackMutation<any>, state : any) {
const sessionStore = useSessionStore(); localStorage.setItem(mutation.storeId, JSON.stringify(state));
const budgetStore = useBudgetsStore(); console.log("saving to local storage", mutation)
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));
} }
useSettingsStore().$subscribe(() => saveStateToLocalStorage); useSettingsStore().$subscribe(saveStateToLocalStorage);
useBudgetsStore().$subscribe(() => saveStateToLocalStorage); useBudgetsStore().$subscribe(saveStateToLocalStorage);
useSessionStore().$subscribe(() => saveStateToLocalStorage); useSessionStore().$subscribe(saveStateToLocalStorage);

View File

@ -48,6 +48,11 @@ export const useSessionStore = defineStore('session', {
}, },
logout() { logout() {
this.$reset() this.$reset()
},
restoreFromLocalStorage() {
const json = localStorage.getItem("session");
const value = JSON.parse(json || "{}");
Object.assign(this, value);
} }
} }
}) })