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