From 0e342f2bcf03ee7ed13b6dbc13a166d465d6dadb Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Thu, 10 Feb 2022 16:30:42 +0000 Subject: [PATCH] Try to move perstisting to stores --- web/src/App.vue | 9 +++++++-- web/src/main.ts | 25 +++++++------------------ web/src/stores/session.ts | 7 ++++++- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/web/src/App.vue b/web/src/App.vue index d6496af..64042e6 100644 --- a/web/src/App.vue +++ b/web/src/App.vue @@ -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;*/ } }) diff --git a/web/src/main.ts b/web/src/main.ts index 00c4adc..b2fa505 100644 --- a/web/src/main.ts +++ b/web/src/main.ts @@ -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, 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); \ No newline at end of file +useSettingsStore().$subscribe(saveStateToLocalStorage); +useBudgetsStore().$subscribe(saveStateToLocalStorage); +useSessionStore().$subscribe(saveStateToLocalStorage); \ No newline at end of file diff --git a/web/src/stores/session.ts b/web/src/stores/session.ts index 2052534..19e1521 100644 --- a/web/src/stores/session.ts +++ b/web/src/stores/session.ts @@ -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); } } -}) +}) \ No newline at end of file