diff --git a/src/mixins/vehicle-questions-mixin.js b/src/mixins/vehicle-questions-mixin.js index 61f26475f..75f042ff4 100644 --- a/src/mixins/vehicle-questions-mixin.js +++ b/src/mixins/vehicle-questions-mixin.js @@ -462,24 +462,47 @@ export default { // Can't use `this` because navigateForward is also called from quote async navigateBack(vm) { const self = vm ?? this; - const partsOrQuestions = ( - self.$store.getters.pageData(fmgPageValues.CAPABILITY_QUESTIONS) ?? - self.$store.getters.pageData(fmgPageValues.MOLDING_QUESTIONS) ?? - self.$store.getters.pageData(fmgPageValues.VEHICLE_PARTS) ?? - self.$store.getters.pageData(fmgPageValues.PART_QUESTIONS) - )?.partsOrQuestions; - const hasPartQuestions = this.hasPartQuestions(partsOrQuestions); + const currentPage = self.$route.query.fmgPage; + const pageDataCapabilityQuestions = self.$store.getters.pageData( + fmgPageValues.CAPABILITY_QUESTIONS + ); + const pageDataMoldingQuestions = self.$store.getters.pageData( + fmgPageValues.MOLDING_QUESTIONS + ); + const pageDataVehicleParts = self.$store.getters.pageData(fmgPageValues.VEHICLE_PARTS); + const pageDataPartQuestions = self.$store.getters.pageData( + fmgPageValues.PART_QUESTIONS + ); + + let currentPartsOrQuestions = null; + + if ( + currentPage !== fmgPageValues.CAPABILITY_QUESTIONS && + !!pageDataCapabilityQuestions + ) { + currentPartsOrQuestions = pageDataCapabilityQuestions?.partsOrQuestions; + } else if ( + currentPage !== fmgPageValues.MOLDING_QUESTIONS && + !!pageDataMoldingQuestions + ) { + currentPartsOrQuestions = pageDataMoldingQuestions?.partsOrQuestions; + } else if (currentPage !== fmgPageValues.VEHICLE_PARTS && !!pageDataVehicleParts) { + currentPartsOrQuestions = pageDataVehicleParts?.partsOrQuestions; + } else if (currentPage !== fmgPageValues.PARTS_QUESTIONS && !!pageDataPartQuestions) { + currentPartsOrQuestions = pageDataPartQuestions?.partsOrQuestions; + } + + const hasPartQuestions = this.hasPartQuestions(currentPartsOrQuestions); const hasGlassLocationWithMultipleParts = - this.hasGlassLocationWithMultipleParts(partsOrQuestions); - const hasChildPartQuestions = this.hasChildPartQuestions(partsOrQuestions); - const hasCapabilityQuestions = this.hasCapabilityQuestions(partsOrQuestions); + this.hasGlassLocationWithMultipleParts(currentPartsOrQuestions); + const hasChildPartQuestions = this.hasChildPartQuestions(currentPartsOrQuestions); + const hasCapabilityQuestions = this.hasCapabilityQuestions(currentPartsOrQuestions); const skipVinLookup = await store.dispatch(storeActions.IS_VIN_OPTIONAL_VEHICLE); let backNavigationScenario = self.$store.getters.vehicle.vin ? navigationScenarios.CLICKED_BACK_WITH_VIN_AND_NO_MORE_QUESTIONS : navigationScenarios.CLICKED_BACK_WITH_NO_VIN_NOR_QUESTIONS; - const currentPage = self.$route.query.fmgPage; if ( hasCapabilityQuestions && this.currentPageComesAfterPage(currentPage, fmgPageValues.CAPABILITY_QUESTIONS)