Replace vuex by pinia #7
@ -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>
|
||||||
|
@ -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);
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
Loading…
x
Reference in New Issue
Block a user