Changing pinia persistance to use session storage instead of local storage. Added appropriate store reset logic.

This commit is contained in:
Jeremy-Z 2026-02-11 12:43:37 -05:00
parent 203f7f1d68
commit 75c18a29ce
3 changed files with 10 additions and 8 deletions

View file

@ -22,8 +22,7 @@ export default {
mixins: [],
setup() {
const mainStore = useMainStore();
mainStore.resetISSConfigState();
mainStore.resetPageFields();
mainStore.populateInitialState(true);
return { mainStore };
},
data() {

View file

@ -29,7 +29,7 @@ vueApp.config.compilerOptions.isCustomElement = (tag) =>
const pinia = createPinia();
vueApp.use(pinia);
pinia.use(piniaPluginPersistedstate);
useMainStore().populateInitialState();
useMainStore().populateInitialState(false);
// Additional Vue items to setup
vueApp.use(router);

View file

@ -2449,8 +2449,8 @@ export const useMainStore = defineStore({
},
// populate initial state
populateInitialState() {
if (!localStorage.getItem(storeId)) {
populateInitialState(forceReset) {
if (!sessionStorage.getItem(storeId) || forceReset ) {
this.$state = state;
}
},
@ -2904,7 +2904,7 @@ export const useMainStore = defineStore({
submittedOrder.submitType = submitType;
submittedOrder.payment.isPayInAdvance = this.isPayInAdvance;
// set to local storage
// set to sessionStorage
window.sessionStorage.setItem(webStorageConstants.SUBMITTED_ORDER, JSON.stringify(submittedOrder));
// clear vuex
@ -2920,11 +2920,14 @@ export const useMainStore = defineStore({
},
resetSubmittedOrder() {
// clear from local storage
// clear from sessionStorage
window.sessionStorage.removeItem(webStorageConstants.SUBMITTED_ORDER);
}
},
persist: true
persist: {
// Default is localStorage, but sessionStorage is used here to ensure state is cleared when the browser tab is closed, preventing potential issues with stale data on return visits.
storage: sessionStorage
}
});
// Private Functions