From 75c18a29ceda11029c6b68aefdfe8c6d4975b84a Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Wed, 11 Feb 2026 12:43:37 -0500 Subject: [PATCH] Changing pinia persistance to use session storage instead of local storage. Added appropriate store reset logic. --- src/layouts/entry-page/entry-page.vue | 3 +-- src/main.js | 2 +- src/store/index.js | 13 ++++++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/layouts/entry-page/entry-page.vue b/src/layouts/entry-page/entry-page.vue index 30c8b276..3918dc33 100644 --- a/src/layouts/entry-page/entry-page.vue +++ b/src/layouts/entry-page/entry-page.vue @@ -22,8 +22,7 @@ export default { mixins: [], setup() { const mainStore = useMainStore(); - mainStore.resetISSConfigState(); - mainStore.resetPageFields(); + mainStore.populateInitialState(true); return { mainStore }; }, data() { diff --git a/src/main.js b/src/main.js index 7b5ca497..03f498c1 100644 --- a/src/main.js +++ b/src/main.js @@ -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); diff --git a/src/store/index.js b/src/store/index.js index 08c9e4e9..63f8a623 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -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