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:
commit
29998788c1
3 changed files with 10 additions and 8 deletions
|
|
@ -22,8 +22,7 @@ export default {
|
|||
mixins: [],
|
||||
setup() {
|
||||
const mainStore = useMainStore();
|
||||
mainStore.resetISSConfigState();
|
||||
mainStore.resetPageFields();
|
||||
mainStore.populateInitialState(true);
|
||||
return { mainStore };
|
||||
},
|
||||
data() {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue