Merge pull request #1063 from Safelite/feature/jzimmerman/PiniaStoreIssueFix

Changing pinia persisted state to use session storage instead of local storage. Added appropriate store reset logic.
This commit is contained in:
Jeremy-Z 2026-02-11 13:04:20 -05:00 committed by GitHub
commit 29998788c1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
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