From 893544d709e4127279f1e1136535a1d63696bcf5 Mon Sep 17 00:00:00 2001 From: Oh Date: Tue, 1 Mar 2022 12:18:56 -0500 Subject: [PATCH 01/16] CSR-98 Try basic routing --- src/layouts/vehicle-damage/vehicle-damage.vue | 9 ++++++++- src/router/router-constants/navigation-scenarios.js | 1 + src/router/router-constants/routing-table.js | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index aa888e14a..203e46abb 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -25,7 +25,7 @@ v-model="selectedRearReplaceOptions" groupName="BackGlassReplaceOptionsQuestion" /> - + @@ -137,6 +137,13 @@ export default { this.$route ); }, + forwardButtonAction() { + console.log("Get estimate!") + this.$router.navigate( + this.navigationScenarios.CLICKED_FORWARD, + this.$route + ); + } }, components: { funnelHeader, diff --git a/src/router/router-constants/navigation-scenarios.js b/src/router/router-constants/navigation-scenarios.js index 48e36996b..338998d0d 100644 --- a/src/router/router-constants/navigation-scenarios.js +++ b/src/router/router-constants/navigation-scenarios.js @@ -4,6 +4,7 @@ const navigationScenarios = { SELECTED_MAKE: "SELECTED_MAKE", SELECTED_STYLE: "SELECTED_STYLE", CLICKED_BACK: "CLICKED_BACK", + CLICKED_FORWARD: "CLICKED_FORWARD" }; export { navigationScenarios }; diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js index 88c47563c..600def25d 100644 --- a/src/router/router-constants/routing-table.js +++ b/src/router/router-constants/routing-table.js @@ -57,6 +57,10 @@ const routingTable = [ scenario: navigationScenarios.CLICKED_BACK, destinationFmgPageValue: fmgPageValues.VEHICLE_STYLE, }, + { + scenario: navigationScenarios.CLICKED_FORWARD, + destinationUrl: "http://localhost:38000/default.aspx", + }, ], }, ]; From 6ce8bbec8a3b29ca7bf2d0b19cf87fdbd80dd3db Mon Sep 17 00:00:00 2001 From: Katie Date: Tue, 8 Mar 2022 17:24:10 -0500 Subject: [PATCH 02/16] CSR-98 Save on every page and redirect to heritage funnel on one --- src/constants/store-mutations.js | 5 +++ src/global-methods.js | 10 +++++- src/layouts/vehicle-damage/vehicle-damage.vue | 21 +++--------- src/mixins/base-mixin.js | 26 +++++++++++++++ src/router/index.js | 33 +++++++++++++------ src/router/router-constants/routing-table.js | 4 +++ src/store/index.js | 20 +++++++++-- vue.config.js | 2 +- vue.release.config.js | 1 + 9 files changed, 91 insertions(+), 31 deletions(-) diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index c07e88bf2..838018590 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -15,6 +15,11 @@ const storeMutations = { UPDATE_GLASS_TO_REPLACE: "updateGlassToReplace", UPDATE_PARTS: "updateParts", + // ORDER MUTATIONS + UPDATE_REFERRAL_NUMBER: "updateReferralNumber", + UPDATE_REFERRAL_DATE: "updateReferralDate", + UPDATE_REFERRAL_CORRELATION_ID: "updateReferralCorrelationId", + // EVENT BUS MUTATIONS ADD_EVENT_TO_BUS: "addEventToBus", REMOVE_EVENT_FROM_BUS: "removeEventFromBus", diff --git a/src/global-methods.js b/src/global-methods.js index 788d4c2e4..7d82a2590 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -5,7 +5,15 @@ import httpStatusCodes from "http-status-codes"; export default { callHttpClient({ method, endpoint, payload }) { return new Promise((resolve, reject) => { - const apiGatewayUrl = applicationConfig.CONSUMER_APIGATEWAY_URL; + // TODO CSR-98 TEMP FOR TESTING + var apiGatewayUrl = applicationConfig.CONSUMER_APIGATEWAY_URL; + + if (endpoint.includes("order")) { + apiGatewayUrl = "https://localhost:44346"; + } + + + // const apiGatewayUrl = applicationConfig.CONSUMER_APIGATEWAY_URL; const payloadAndAnalyticsData = Object.assign({}, payload, { AppName: "FixMyGlass", }); diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index a5de80389..5a9eca92f 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -25,7 +25,7 @@ v-model="selectedRearReplaceOptions" groupName="BackGlassReplaceOptionsQuestion" /> - + @@ -49,6 +49,7 @@ import baseMixin from "@/mixins/base-mixin"; import { damageLocationsParts } from "@/constants/damage-locations-parts.js"; import { damageLocationsCms } from "@/constants/damage-locations-cms.js"; + export default { name: "vehicle-damage", async beforeRouteEnter(to, from, next) { @@ -129,6 +130,7 @@ export default { this.$route ); }, + async forwardButtonAction() { var windshieldChipCount = this.selectedWindshieldOptions.selectedWindshieldChipCount && this.isWindshieldDamageLocation ? this.selectedWindshieldOptions.selectedWindshieldChipCount[0] : null; @@ -143,26 +145,11 @@ export default { var partsData = await baseMixin.methods.dispatchNonBlockingStoreAction(this.storeActions.GET_PARTS_OR_QUESTIONS, { carId: store.getters.vehicle.carId, glassArray: this.selectedGlassToReplace()}, false); - - /******** START CSR-98 ********/ - var savedOrderInfo = await baseMixin.methods.dispatchNonBlockingStoreAction(this.storeActions.SAVE_ORDER); - console.log(savedOrderInfo) - /******** END CSR-98 ********/ this.navigateForward(partsData); }, + navigateForward(partsData){ - /******** START CSR-98 ********/ - console.log("Get estimate!") - - // this.$router.navigate( - // this.navigationScenarios.CLICKED_FORWARD, - // this.$route - // ); - /******** END CSR-98 ********/ - - - //found problem questions if (partsData.data.partsOrQuestions.some(pq => pq.partQuestions != null && pq.partQuestions.length > 0)){ this.$router.navigateAfterSave(this.navigationScenarios.SELECTED_DAMAGE_WITH_PART_QUESTIONS, this.$route, {}, {}, partsData.data); diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js index d46841b6a..47407c81f 100644 --- a/src/mixins/base-mixin.js +++ b/src/mixins/base-mixin.js @@ -1,9 +1,11 @@ import store from "@/store"; +import router from "@/router"; import { storeActions } from "@/constants/store-actions.js"; import { storeMutations } from "@/constants/store-mutations.js"; import { navigationScenarios } from "@/router/router-constants/navigation-scenarios"; import { widgetNames } from "@/constants/widget-names.js"; import { vehicleCategories } from "@/constants/vehicle-categories.js"; +import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; export default { data() { @@ -20,6 +22,30 @@ export default { }, savePageDataToStore(page, data){ store.commit(storeMutations.UPDATE_PAGE_DATA, { page: page, data: data }); + }, + async saveOrder() { + var savedOrderInfo = (await this.dispatchNonBlockingStoreAction(storeActions.SAVE_ORDER)).data; + store.commit(storeMutations.UPDATE_REFERRAL_NUMBER, savedOrderInfo.referralNumber); + store.commit(storeMutations.UPDATE_REFERRAL_DATE, savedOrderInfo.referralDate); + store.commit(storeMutations.UPDATE_REFERRAL_CORRELATION_ID, savedOrderInfo.referralCorrelationId); + + // console.log(router) + // console.log(router.currentRoute.value.name) + // if (router.currentRoute.value.name) + // this.navigateToHeritageFunnel() + }, + navigateToHeritageFunnel() { + console.log("Get estimate!") + var referralCorrelationId = store.getters.referralCorrelationId; + + router.navigate( + navigationScenarios.CLICKED_FORWARD, + router.currentRoute.value, + { + corid: referralCorrelationId, + src: "concept-funnel" + } + ); } }, computed: { diff --git a/src/router/index.js b/src/router/index.js index 0d98f6698..c792a9bc1 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -132,6 +132,9 @@ function navigate(scenario, currentRoute, invalidateOnSave, optionalQuery = {}, return; } + // here?? CSR-98 + baseMixin.methods.saveOrder(); + // Match our maps up and navigate if we have a destination. const matchingScenarioMap = getNavigationMap(scenario, currentRoute); @@ -148,15 +151,20 @@ function navigate(scenario, currentRoute, invalidateOnSave, optionalQuery = {}, // Append page data to the store for the NEXT page, if any. It will be an empty object if none is provided. baseMixin.methods.savePageDataToStore(matchingScenarioMap.destinationFmgPageValue, optionalPageData); - router.push({ - name: "root", - query: Object.assign(optionalQuery, { - fmgPage: matchingScenarioMap.destinationFmgPageValue, - }), - params: optionalParams, - }); + // TODO CSR-98 don't hardcode this + if (currentRoute.name == "vehicle-damage") + baseMixin.methods.navigateToHeritageFunnel() + else { + router.push({ + name: "root", + query: Object.assign(optionalQuery, { + fmgPage: matchingScenarioMap.destinationFmgPageValue, + }), + params: optionalParams, + }); + } } else if (matchingScenarioMap.destinationUrl !== undefined) { - navigateToUrl(matchingScenarioMap.destinationUrl); + navigateToUrl(matchingScenarioMap.destinationUrl, optionalQuery); } } @@ -177,9 +185,14 @@ function getNavigationMap(scenario, currentRoute) { //---------------------------------------------------------- Private Functions ---------------------------------------------------------- // Navigate to an external url. -function navigateToUrl(url) { +function navigateToUrl(url, optionalQuery) { // possibly show some loading screen in the future here. - window.location.assign(url); + var externalUrl = new URL(url); + + for (const queryKey in optionalQuery) { + externalUrl.searchParams.append(queryKey, optionalQuery[queryKey]); + } + window.location.assign(externalUrl); } // Get route information by page name. diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js index 2712c53d2..a6773cd62 100644 --- a/src/router/router-constants/routing-table.js +++ b/src/router/router-constants/routing-table.js @@ -87,6 +87,10 @@ const routingTable = [ scenario: navigationScenarios.SELECTED_PARTS, destinationFmgPageValue: fmgPageValues.QUOTE, }, + { + scenario: navigationScenarios.CLICKED_FORWARD, + destinationUrl: externalUrls.HERITAGE_FUNNEL, + }, ], }, ]; diff --git a/src/store/index.js b/src/store/index.js index cbab3a84a..2ade585cc 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -29,8 +29,9 @@ export const state = { glassParts: null, otherParts: null }, - referralSeqNum: null, - correlationId: null, + referralNumber: null, + referralDate: null, + referralCorrelationId: null, }, applicationUser: { eventBus: [], @@ -83,6 +84,15 @@ export const mutations = { updatePageData(state, pageData){ state.applicationUser.pageData[pageData.page] = pageData.data; }, + updateReferralCorrelationId(state, referralCorrelationId) { + state.order.referralCorrelationId = referralCorrelationId; + }, + updateReferralNumber(state, referralNumber) { + state.order.referralNumber = referralNumber; + }, + updateReferralDate(state, referralDate) { + state.order.referralDate = referralDate; + }, // EVENT BUS MUTATIONS addEventToBus(state, event) { @@ -144,6 +154,9 @@ export const getters = { eventBus: (state) => state.applicationUser.eventBus, damage: (state) => state.order.damage, lineItems: (state) => state.order.lineItems, + referralNumber: (state) => state.order.referralNumber, + referralDate: (state) => state.order.referralDate, + referralCorrelationId: (state) => state.order.referralCorrelationId, pageData: (state) => (page) => { return state.applicationUser.pageData[page]; } @@ -300,6 +313,9 @@ export const actions = { style: vehicle.style, }, numberOfChips: damage.numberOfChips, + glassToReplace: damage.glassToReplace, + referralNumber: context.getters.referralNumber, + referralDate: context.getters.referralDate }, }); }, diff --git a/vue.config.js b/vue.config.js index 144c143bb..704ca0907 100644 --- a/vue.config.js +++ b/vue.config.js @@ -23,5 +23,5 @@ module.exports = { }, configureWebpack: { devtool: 'source-map' - } + }, }; diff --git a/vue.release.config.js b/vue.release.config.js index 43fffb47f..3c281dc78 100644 --- a/vue.release.config.js +++ b/vue.release.config.js @@ -1,4 +1,5 @@ process.env.VUE_APP_CONSUMER_API_GATEWAY = "__VUE_APP_CONSUMER_API_GATEWAY__"; +process.env.VUE_APP_HERITAGE_FUNNEL = "__VUE_APP_HERITAGE_FUNNEL__"; module.exports = { outputDir: "dist/fmg", From 59d9199e38667e056873a9b78c4074570e647713 Mon Sep 17 00:00:00 2001 From: bmauger Date: Wed, 9 Mar 2022 17:12:58 -0500 Subject: [PATCH 03/16] WIP Do not merge. --- src/layouts/vin-lookup/vin-lookup.spec.js | 0 src/layouts/vin-lookup/vin-lookup.vue | 62 +++++++++++++++++++ src/router/router-constants/fmgPage-values.js | 3 +- src/router/router-constants/routing-table.js | 2 +- 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/layouts/vin-lookup/vin-lookup.spec.js create mode 100644 src/layouts/vin-lookup/vin-lookup.vue diff --git a/src/layouts/vin-lookup/vin-lookup.spec.js b/src/layouts/vin-lookup/vin-lookup.spec.js new file mode 100644 index 000000000..e69de29bb diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue new file mode 100644 index 000000000..26e451d72 --- /dev/null +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/router/router-constants/fmgPage-values.js b/src/router/router-constants/fmgPage-values.js index 770c1f7b6..b648ae047 100644 --- a/src/router/router-constants/fmgPage-values.js +++ b/src/router/router-constants/fmgPage-values.js @@ -4,9 +4,10 @@ const fmgPageValues = { VEHICLE_MODEL: "vehicle-model", VEHICLE_STYLE: "vehicle-style", VEHICLE_DAMAGE: "vehicle-damage", + VIN_LOOKUP: "vin-lookup", VEHICLE_PARTS: "vehicle-parts", PART_QUESTIONS: "part-questions", REVEAL : "reveal", }; -export { fmgPageValues }; \ No newline at end of file +export { fmgPageValues }; diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js index c9dc7ba4d..9333d7c6c 100644 --- a/src/router/router-constants/routing-table.js +++ b/src/router/router-constants/routing-table.js @@ -59,7 +59,7 @@ const routingTable = [ }, { scenario: navigationScenarios.SELECTED_DAMAGE_WITH_SINGLE_PART, - destinationFmgPageValue: fmgPageValues.REVEAL, + destinationFmgPageValue: fmgPageValues.VIN_LOOKUP, }, { scenario: navigationScenarios.SELECTED_DAMAGE_WITH_MULTIPLE_PARTS, From 7125b8182d3a8c7ca9154566a8c176f77d66c572 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Thu, 10 Mar 2022 15:06:05 -0500 Subject: [PATCH 04/16] CSR-319: fix issue where null was overwriting array data --- .../windshield-options/windshield-options.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue index e94ccc305..c1539e91a 100644 --- a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue +++ b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue @@ -91,10 +91,11 @@ export default ({ this.windshieldAvailableReplacementOptions = windshieldAvailableReplacementOptions; }, getWindshieldOptions(selectedWindshieldDamageType, selectedWindshieldChipCount, selectedWindshieldReplaceOptions){ + // ONLY UPDATE THE NEW VALUE IF IT IS TRUTHY (NOT NULL) return { - selectedWindshieldDamageType: selectedWindshieldDamageType, - selectedWindshieldChipCount: selectedWindshieldChipCount, - selectedWindshieldReplaceOptions: selectedWindshieldReplaceOptions + selectedWindshieldDamageType: selectedWindshieldDamageType ? selectedWindshieldDamageType : this.selectedValues.selectedWindshieldDamageType, + selectedWindshieldChipCount: selectedWindshieldChipCount ? selectedWindshieldChipCount : this.selectedValues.selectedWindshieldChipCount, + selectedWindshieldReplaceOptions: selectedWindshieldReplaceOptions ? selectedWindshieldReplaceOptions : this.selectedValues.selectedWindshieldReplaceOptions, } }, }, From 2a8680914cd1e7a9bfcf597846fefcc2419e031a Mon Sep 17 00:00:00 2001 From: bmauger Date: Thu, 10 Mar 2022 15:22:12 -0500 Subject: [PATCH 05/16] WIP --- src/layouts/vehicle-damage/vehicle-damage.vue | 8 --- src/layouts/vin-lookup/vin-lookup.vue | 67 +++++++++++++++---- src/styles/common-styles.scss | 8 ++- 3 files changed, 60 insertions(+), 23 deletions(-) diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 0eb11fbf0..20318695b 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -408,11 +408,3 @@ export default { }, }; - - diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index 26e451d72..d5acbb1b2 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -1,7 +1,7 @@ diff --git a/src/styles/common-styles.scss b/src/styles/common-styles.scss index 561b05b76..35a337103 100644 --- a/src/styles/common-styles.scss +++ b/src/styles/common-styles.scss @@ -35,4 +35,10 @@ body { overflow: hidden; } } -// Hide horizontal scrollbar + +//Applies to
used for validation. Keeps footer stuck to the bottom. +.vehicle-damage-form { + display: flex; + flex-direction: column; + height: 100%; +} From 27ff640529056d060001cce806d7ad5e0df82d4b Mon Sep 17 00:00:00 2001 From: bmauger Date: Thu, 10 Mar 2022 15:23:10 -0500 Subject: [PATCH 06/16] Update vin-lookup.vue --- src/layouts/vin-lookup/vin-lookup.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index d5acbb1b2..3df005c30 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -3,6 +3,7 @@ +

VIN Lookup Placeholder Page

Date: Thu, 10 Mar 2022 15:25:19 -0500 Subject: [PATCH 07/16] Add empty unit test. WIP --- src/layouts/vin-lookup/vin-lookup.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/layouts/vin-lookup/vin-lookup.spec.js b/src/layouts/vin-lookup/vin-lookup.spec.js index e69de29bb..3d0843e10 100644 --- a/src/layouts/vin-lookup/vin-lookup.spec.js +++ b/src/layouts/vin-lookup/vin-lookup.spec.js @@ -0,0 +1 @@ +test.todo("some test to be written in the future"); From d65a38b85a44191a798c346089c76b62dcb5f205 Mon Sep 17 00:00:00 2001 From: bmauger Date: Thu, 10 Mar 2022 15:30:18 -0500 Subject: [PATCH 08/16] Code format. --- src/layouts/vin-lookup/vin-lookup.vue | 52 +++++++++++++-------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index 3df005c30..6b86ec4f5 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -5,20 +5,20 @@

VIN Lookup Placeholder Page

- - + + From c19bb1cf7969ade99d069fb0dc85e69170fea8d2 Mon Sep 17 00:00:00 2001 From: bmauger Date: Thu, 10 Mar 2022 15:42:17 -0500 Subject: [PATCH 09/16] Add classes inline, remove from global. --- src/layouts/vin-lookup/vin-lookup.vue | 2 +- src/styles/common-styles.scss | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index 6b86ec4f5..aa179439a 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -9,7 +9,7 @@ @invalid-submit="onInvalidSubmit" ref="theForm" v-slot="{ meta }" - class="vehicle-damage-form" + class="d-flex flex-column h-100" > used for validation. Keeps footer stuck to the bottom. -.vehicle-damage-form { - display: flex; - flex-direction: column; - height: 100%; -} From 98e3b7026a9879bfd222948d3671070cec0a7575 Mon Sep 17 00:00:00 2001 From: bmauger Date: Thu, 10 Mar 2022 15:56:32 -0500 Subject: [PATCH 10/16] Update route per Carl's comment. --- src/router/router-constants/routing-table.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js index 9333d7c6c..3bd937c41 100644 --- a/src/router/router-constants/routing-table.js +++ b/src/router/router-constants/routing-table.js @@ -59,7 +59,7 @@ const routingTable = [ }, { scenario: navigationScenarios.SELECTED_DAMAGE_WITH_SINGLE_PART, - destinationFmgPageValue: fmgPageValues.VIN_LOOKUP, + destinationFmgPageValue: fmgPageValues.REVEAL, }, { scenario: navigationScenarios.SELECTED_DAMAGE_WITH_MULTIPLE_PARTS, @@ -84,6 +84,19 @@ const routingTable = [ }, ], }, + { + fmgPageValue: fmgPageValues.REVEAL, + maps: [ + { + scenario: navigationScenarios.CLICKED_BACK, + destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, + }, + { + scenario: navigationScenarios.SELECTED_PARTS, + destinationFmgPageValue: fmgPageValues.VIN_LOOKUP, + }, + ], + }, ]; export { routingTable }; From 5370e1ce86b3a707b8354f918256f4e0767cab13 Mon Sep 17 00:00:00 2001 From: bmauger Date: Thu, 10 Mar 2022 16:10:20 -0500 Subject: [PATCH 11/16] Update routing. --- src/router/router-constants/routing-table.js | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js index 3bd937c41..c9dc7ba4d 100644 --- a/src/router/router-constants/routing-table.js +++ b/src/router/router-constants/routing-table.js @@ -84,19 +84,6 @@ const routingTable = [ }, ], }, - { - fmgPageValue: fmgPageValues.REVEAL, - maps: [ - { - scenario: navigationScenarios.CLICKED_BACK, - destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, - }, - { - scenario: navigationScenarios.SELECTED_PARTS, - destinationFmgPageValue: fmgPageValues.VIN_LOOKUP, - }, - ], - }, ]; export { routingTable }; From 1d12c6a325e4d568609ee0802d8896e22320fa00 Mon Sep 17 00:00:00 2001 From: bmauger Date: Thu, 10 Mar 2022 16:20:04 -0500 Subject: [PATCH 12/16] Update routing table. --- src/router/router-constants/routing-table.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js index c9dc7ba4d..3bd937c41 100644 --- a/src/router/router-constants/routing-table.js +++ b/src/router/router-constants/routing-table.js @@ -84,6 +84,19 @@ const routingTable = [ }, ], }, + { + fmgPageValue: fmgPageValues.REVEAL, + maps: [ + { + scenario: navigationScenarios.CLICKED_BACK, + destinationFmgPageValue: fmgPageValues.VEHICLE_DAMAGE, + }, + { + scenario: navigationScenarios.SELECTED_PARTS, + destinationFmgPageValue: fmgPageValues.VIN_LOOKUP, + }, + ], + }, ]; export { routingTable }; From 79dca4d4bbdb7b1f7baef5aa1e60aee1b075439d Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Thu, 10 Mar 2022 16:37:04 -0500 Subject: [PATCH 13/16] CSR-319: add final special validation for preventSplitAndSingleTogether --- .../button-question/button-question.vue | 5 +- .../replace-options-question.vue | 2 + src/layouts/vehicle-damage/vehicle-damage.vue | 18 +++++++ .../windshield-options/windshield-options.vue | 53 ++++++++++++++++--- 4 files changed, 68 insertions(+), 10 deletions(-) diff --git a/src/common-components/button-question/button-question.vue b/src/common-components/button-question/button-question.vue index 80c02af69..b46d933c0 100644 --- a/src/common-components/button-question/button-question.vue +++ b/src/common-components/button-question/button-question.vue @@ -37,8 +37,8 @@ -
- +
+
@@ -133,6 +133,7 @@ export default { if(this.isMultiSelect && this.selectedValues) { // Add or remove item to array of data to emit const newSelectedValues = this.selectedValues; + if(Array.isArray(this.selectedValues)) { val.checkValue ? newSelectedValues.push(val.value) : newSelectedValues.splice(newSelectedValues.indexOf(val.value), 1); this.selectedValues = newSelectedValues; diff --git a/src/layouts/vehicle-damage/replace-options-question/replace-options-question.vue b/src/layouts/vehicle-damage/replace-options-question/replace-options-question.vue index cdbb0c48d..fe43419e8 100644 --- a/src/layouts/vehicle-damage/replace-options-question/replace-options-question.vue +++ b/src/layouts/vehicle-damage/replace-options-question/replace-options-question.vue @@ -10,6 +10,7 @@ buttonType="listCard" v-model="selectedValues" :validationRules="validationRules" + :suppressError="suppressError" /> @@ -35,6 +36,7 @@ export default ({ modelValue: Array, isMultiSelect: Boolean, validationRules: String, + suppressError: Boolean, }, methods: { initializeComponent(cmsContent, replaceOptions){ diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index 0eb11fbf0..20c498198 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -19,6 +19,7 @@ ref="windshieldOptions" v-model="selectedWindshieldOptions" :hasRepairReplaceConflict="hasRepairReplaceConflict" + :hasSplitSingleConflict="hasSplitSingleConflict" :selectedDamageLocations="selectedDamageLocations" /> 1 && this.isWindshieldRepair; }, + hasSplitSingleConflict() { + if (!this.selectedWindshieldOptions.selectedWindshieldReplaceOptions) return false; + + return this.selectedWindshieldOptions.selectedWindshieldReplaceOptions.some(selectedSingleWindshield => + { + return selectedSingleWindshield.toUpperCase() === damageLocationsSelected.SINGLE.toUpperCase(); + }) && + (this.selectedWindshieldOptions.selectedWindshieldReplaceOptions.some(selectedDriverWindshield => + { + return selectedDriverWindshield.toUpperCase() === damageLocationsSelected.DRIVER.toUpperCase(); + }) || + this.selectedWindshieldOptions.selectedWindshieldReplaceOptions.some(selectedPassengerWindshield => + { + return selectedPassengerWindshield.toUpperCase() === damageLocationsSelected.PASSENGER.toUpperCase(); + }) + ); + }, }, components: { diff --git a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue index c1539e91a..21f4e6f33 100644 --- a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue +++ b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue @@ -2,14 +2,17 @@
+ isSplitWindshieldOption: {{isSplitWindshieldOption}} +
+ isWindshieldReplaceAvailable: {{isWindshieldReplaceAvailable}} +
@@ -53,17 +65,25 @@ defineRule("checkForRepairAndReplace", (value, [otherFieldValue]) => { Array.isArray(otherFieldValue) && otherFieldValue.length > 1) { - return "checkForRepairAndReplace error" + return false; } return true; }); - defineRule("repairOnly", (value) => { if (value.toString().toUpperCase() === damageLocationsSelected.REPAIR.toUpperCase()) { return true; } return false; }); +defineRule("preventSplitAndSingleTogether", (value) => { + if (value.toString().toUpperCase().includes(damageLocationsSelected.SINGLE.toUpperCase()) && + (value.toString().toUpperCase().includes(damageLocationsSelected.DRIVER.toUpperCase()) || + value.toString().toUpperCase().includes(damageLocationsSelected.PASSENGER.toUpperCase()))) + { + return false; + } + return true; +}); export default ({ name: "windshieldOptions", @@ -77,7 +97,8 @@ export default ({ props: { modelValue: Array, selectedDamageLocations: Array, - hasRepairReplaceConflict: Boolean + hasRepairReplaceConflict: Boolean, + hasSplitSingleConflict: Boolean, }, methods: { @@ -151,12 +172,28 @@ export default ({ isWindshieldReplaceAvailable() { return !(Array.isArray(this.windshieldAvailableReplacementOptions) && this.windshieldAvailableReplacementOptions.length < 1); }, - showNoReplaceAvailableError() { + isSplitWindshieldOption() { + const options = this.windshieldAvailableReplacementOptions.toString().toUpperCase(); + if (options.includes('DRIVER') && options.includes('PASSENGER')) { + return true; + } + return false; + }, + showNoReplacementAvailableError() { if (this.isReplaceOptionSelected && !this.isWindshieldReplaceAvailable) { return true; } return false; }, + windshieldDamageTypeQuestionValidationRules() { + // Note: the validation rules string is not dynamic (it cannot be changed once component has been created) + let validationRules = "windshield-damage-type-required|checkForRepairAndReplace:@DamageLocationQuestion"; + // if vehicle has no windshield replacement option + if (!this.isWindshieldReplaceAvailable) { + validationRules = validationRules.concat('|repairOnly'); + } + return validationRules; + } }, components: { windshieldDamageTypeQuestion, From c4707fd6af9f2a0e8b90d31abe51425e5bd25f2d Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Thu, 10 Mar 2022 16:42:24 -0500 Subject: [PATCH 14/16] CSR-319: clean up output on page --- .../vehicle-damage/windshield-options/windshield-options.vue | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue index 21f4e6f33..30f8c15d7 100644 --- a/src/layouts/vehicle-damage/windshield-options/windshield-options.vue +++ b/src/layouts/vehicle-damage/windshield-options/windshield-options.vue @@ -7,9 +7,6 @@ v-model="selectedWindshieldDamageTypeValues" :validationRules="windshieldDamageTypeQuestionValidationRules" /> - isSplitWindshieldOption: {{isSplitWindshieldOption}} -
- isWindshieldReplaceAvailable: {{isWindshieldReplaceAvailable}} Date: Fri, 11 Mar 2022 12:22:35 -0500 Subject: [PATCH 15/16] CSR-98 Read cookie values and remove as needed --- src/constants/store-actions.js | 1 + src/constants/store-mutations.js | 1 + src/mixins/base-mixin.js | 25 ++++--- src/router/index.js | 24 ++++++- src/router/router-constants/routing-table.js | 5 +- src/store/index.js | 68 +++++++++++--------- 6 files changed, 80 insertions(+), 44 deletions(-) diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js index e5d57cdf1..84ecf77e6 100644 --- a/src/constants/store-actions.js +++ b/src/constants/store-actions.js @@ -19,6 +19,7 @@ const storeActions = { RESET_DAMAGE_STATE_AND_DEPENDENCIES: "resetDamageAndDependencies", RESET_REGISTRATION_STATE_AND_DEPENDENCIES: "resetRegistrationAndDependencies", RESET_PARTS_STATE_AND_DEPENDENCIES: "resetPartsAndDependencies", + RESET_STATE: "resetState", }; export { storeActions }; diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index 838018590..d6ee3b321 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -29,6 +29,7 @@ const storeMutations = { RESET_DAMAGE_STATE: "resetDamageState", RESET_REGISTRATION_STATE: "resetRegistrationState", RESET_PARTS_STATE: "resetPartsState", + RESET_STATE: "resetState", // OTHER MUTATIONS UPDATE_PAGE_DATA: "updatePageData", diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js index 47407c81f..5543c681c 100644 --- a/src/mixins/base-mixin.js +++ b/src/mixins/base-mixin.js @@ -5,7 +5,6 @@ import { storeMutations } from "@/constants/store-mutations.js"; import { navigationScenarios } from "@/router/router-constants/navigation-scenarios"; import { widgetNames } from "@/constants/widget-names.js"; import { vehicleCategories } from "@/constants/vehicle-categories.js"; -import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; export default { data() { @@ -28,14 +27,21 @@ export default { store.commit(storeMutations.UPDATE_REFERRAL_NUMBER, savedOrderInfo.referralNumber); store.commit(storeMutations.UPDATE_REFERRAL_DATE, savedOrderInfo.referralDate); store.commit(storeMutations.UPDATE_REFERRAL_CORRELATION_ID, savedOrderInfo.referralCorrelationId); - - // console.log(router) - // console.log(router.currentRoute.value.name) - // if (router.currentRoute.value.name) - // this.navigateToHeritageFunnel() + }, + getCookieValue(cookieName) { + return document.cookie + ?.split("; ") + ?.find(row => row.startsWith(`${cookieName}=`)) + ?.split("=")[1]; + }, + setCookieValue(cookieName, cookieValue) { + document.cookie = `${cookieName}=${cookieValue}`; + }, + deleteCookie(cookieName) { + console.log("D") + document.cookie = `${cookieName}=; Max-Age=0; path=/; domain=${location.hostname}`; }, navigateToHeritageFunnel() { - console.log("Get estimate!") var referralCorrelationId = store.getters.referralCorrelationId; router.navigate( @@ -43,7 +49,10 @@ export default { router.currentRoute.value, { corid: referralCorrelationId, - src: "concept-funnel" + src: "concept-funnel", + // TODO CSR-98 REMOVE THIS + cns: "all", + experiments: "ConceptFunnel=ConceptFunnel_V1=ConceptFunnel_TEST=true" } ); } diff --git a/src/router/index.js b/src/router/index.js index 33b7190ad..ba1725bd3 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -50,6 +50,24 @@ const routes = [ path: "/", name: "root", async beforeEnter(to, from, next) { + // TODO CSR-98 Also triggers on refresh... should it though? + // Entering the concept funnel + if (from.redirectedFrom === undefined) { + // TODO CSR-98 Don't hardcode cookie name "OrderInfo" + var orderInfoJson = baseMixin.methods.getCookieValue("OrderInfo"); + var orderInfo = orderInfoJson == null ? null : JSON.parse(orderInfoJson); + + if (orderInfo?.ShouldResetState) { + store.dispatch(storeActions.RESET_STATE); + } + else { + // should load referral here + } + + // Delete cookie once state is loaded or reset + baseMixin.methods.deleteCookie("OrderInfo"); + } + // If we have no query string, or we don't have the FmgPage query string. if (to.query.fmgPage === undefined) { await GoToFunnelStartOn404(next); @@ -57,7 +75,6 @@ const routes = [ try { // If we already have our route, go to it. if (router.hasRoute(to.query.fmgPage)) { - // Since our route is already in scope, we can grab the component from it and call the arePagePrerequisitesValid function. let component = router.getRoutes().filter((x) => x.name === to.query.fmgPage)[0].components; @@ -152,8 +169,9 @@ function navigate(scenario, currentRoute, invalidateOnSave, optionalQuery = {}, baseMixin.methods.savePageDataToStore(matchingScenarioMap.destinationFmgPageValue, optionalPageData); // TODO CSR-98 don't hardcode this - if (currentRoute.name == "vehicle-damage") - baseMixin.methods.navigateToHeritageFunnel() + if (currentRoute.name == "vehicle-damage") { + baseMixin.methods.navigateToHeritageFunnel(); + } else { router.push({ name: "root", diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js index 766f4f95a..e4c657a1d 100644 --- a/src/router/router-constants/routing-table.js +++ b/src/router/router-constants/routing-table.js @@ -85,15 +85,12 @@ const routingTable = [ }, { scenario: navigationScenarios.SELECTED_PARTS, -<<<<<<< HEAD destinationFmgPageValue: fmgPageValues.QUOTE, }, { scenario: navigationScenarios.CLICKED_FORWARD, - destinationUrl: externalUrls.HERITAGE_FUNNEL, -======= + // destinationUrl: externalUrls.HERITAGE_FUNNEL, destinationFmgPageValue: fmgPageValues.REVEAL, ->>>>>>> develop }, ], }, diff --git a/src/store/index.js b/src/store/index.js index 6097d5896..8e5e801c5 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -7,37 +7,41 @@ import globalMethods from "@/global-methods"; // Export State -export const state = { - order: { - vehicle: { - year: null, - make: null, - model: null, - style: null, - carId: null, - category: null, - imageUrl: null, - imageVifNumber: null, - imageColor: null, +const getDefaultState = () => { + return { + order: { + vehicle: { + year: null, + make: null, + model: null, + style: null, + carId: null, + category: null, + imageUrl: null, + imageVifNumber: null, + imageColor: null, + }, + damage: { + isRepair: null, + numberOfChips: null, + glassToReplace: null, + }, + lineItems:{ + glassParts: null, + otherParts: null + }, + referralNumber: null, + referralDate: null, + referralCorrelationId: null, }, - damage: { - isRepair: null, - numberOfChips: null, - glassToReplace: null, + applicationUser: { + eventBus: [], + pageData: {} }, - lineItems:{ - glassParts: null, - otherParts: null - }, - referralNumber: null, - referralDate: null, - referralCorrelationId: null, - }, - applicationUser: { - eventBus: [], - pageData: {} - }, -} + } +}; + +export const state = getDefaultState(); // Export Mutations export const mutations = { @@ -136,6 +140,9 @@ export const mutations = { resetPartsState(state) { state.order.lineItems.glassParts = null; state.order.lineItems.otherParts = null; + }, + resetState(state) { + Object.assign(state, getDefaultState()); } } @@ -249,6 +256,9 @@ export const actions = { resetPartsAndDependencies(context) { context.commit(storeMutations.RESET_PARTS_STATE); }, + resetState(context) { + context.commit(storeMutations.RESET_STATE); + }, // Content API Actions getRouteInfo(context, { pageName }) { From 399624af8d97436f2982af6163dc63c549046033 Mon Sep 17 00:00:00 2001 From: Katie Date: Tue, 15 Mar 2022 15:17:38 -0400 Subject: [PATCH 16/16] CSR-98 Add variable for cookieName OrderInfo --- src/constants/cookie-names.js | 6 ++ src/layouts/vehicle-damage/vehicle-damage.vue | 6 ++ src/mixins/base-mixin.js | 3 +- src/mixins/base-mixin.spec.js | 2 + src/router/index.js | 67 ++++++++++--------- .../router-constants/navigation-scenarios.js | 3 +- src/router/router-constants/routing-table.js | 4 +- 7 files changed, 56 insertions(+), 35 deletions(-) create mode 100644 src/constants/cookie-names.js diff --git a/src/constants/cookie-names.js b/src/constants/cookie-names.js new file mode 100644 index 000000000..33a76ae43 --- /dev/null +++ b/src/constants/cookie-names.js @@ -0,0 +1,6 @@ +const cookieNames = { + ORDER_INFO: "OrderInfo" +}; + +export { cookieNames }; + \ No newline at end of file diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index df457d24c..aeb4e8ac6 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -294,6 +294,12 @@ export default { }, navigateForward(partsData){ + // CSR-98 TEMP + if (store.getters.vehicle.year == 2010) { + this.navigateToHeritageFunnel(); + return; + } + //found problem questions if (partsData.data.partsOrQuestions.some(pq => pq.partQuestions != null && pq.partQuestions.length > 0)){ this.$router.navigateAfterSave(this.navigationScenarios.SELECTED_DAMAGE_WITH_PART_QUESTIONS, this.$route, {}, {}, partsData.data); diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js index 5543c681c..8fdd6dd8d 100644 --- a/src/mixins/base-mixin.js +++ b/src/mixins/base-mixin.js @@ -38,14 +38,13 @@ export default { document.cookie = `${cookieName}=${cookieValue}`; }, deleteCookie(cookieName) { - console.log("D") document.cookie = `${cookieName}=; Max-Age=0; path=/; domain=${location.hostname}`; }, navigateToHeritageFunnel() { var referralCorrelationId = store.getters.referralCorrelationId; router.navigate( - navigationScenarios.CLICKED_FORWARD, + navigationScenarios.MOVE_TO_HERITAGE_FUNNEL, router.currentRoute.value, { corid: referralCorrelationId, diff --git a/src/mixins/base-mixin.spec.js b/src/mixins/base-mixin.spec.js index da684af1b..e1599a319 100644 --- a/src/mixins/base-mixin.spec.js +++ b/src/mixins/base-mixin.spec.js @@ -79,6 +79,8 @@ describe("baseMixin.js", () => { }); }); + + function getMixInInstance({ isDispatchSuccess = true }) { // Mock Store const storeDispatch = jest.fn(); diff --git a/src/router/index.js b/src/router/index.js index ba1725bd3..8d9876a74 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -7,6 +7,7 @@ import { routingTable } from "@/router/router-constants/routing-table.js"; import { globalEvents, globalEventTypes } from "@/constants/events"; import eventBus from "@/helpers/event-bus/event-bus"; import store from "@/store"; +import { cookieNames } from "@/constants/cookie-names"; // Components import ComponentTest from "@/layouts/component-test/component-test.vue"; @@ -53,19 +54,7 @@ const routes = [ // TODO CSR-98 Also triggers on refresh... should it though? // Entering the concept funnel if (from.redirectedFrom === undefined) { - // TODO CSR-98 Don't hardcode cookie name "OrderInfo" - var orderInfoJson = baseMixin.methods.getCookieValue("OrderInfo"); - var orderInfo = orderInfoJson == null ? null : JSON.parse(orderInfoJson); - - if (orderInfo?.ShouldResetState) { - store.dispatch(storeActions.RESET_STATE); - } - else { - // should load referral here - } - - // Delete cookie once state is loaded or reset - baseMixin.methods.deleteCookie("OrderInfo"); + handleInfoFromHeritageFunnel(); } // If we have no query string, or we don't have the FmgPage query string. @@ -149,13 +138,14 @@ function navigate(scenario, currentRoute, invalidateOnSave, optionalQuery = {}, return; } - // here?? CSR-98 - baseMixin.methods.saveOrder(); + // // here?? CSR-98 + // baseMixin.methods.saveOrder(); // Match our maps up and navigate if we have a destination. const matchingScenarioMap = getNavigationMap(scenario, currentRoute); + const destinationFmgPageValue = matchingScenarioMap.destinationFmgPageValue; - if (matchingScenarioMap.destinationFmgPageValue !== undefined) { + if (destinationFmgPageValue !== undefined) { // We're always pushing the same path, just changing query strings. Make sure our optional query strings get combined with our fmgPage one. // If we need to do invalidation @@ -166,22 +156,22 @@ function navigate(scenario, currentRoute, invalidateOnSave, optionalQuery = {}, } // Append page data to the store for the NEXT page, if any. It will be an empty object if none is provided. - baseMixin.methods.savePageDataToStore(matchingScenarioMap.destinationFmgPageValue, optionalPageData); + baseMixin.methods.savePageDataToStore(destinationFmgPageValue, optionalPageData); - // TODO CSR-98 don't hardcode this - if (currentRoute.name == "vehicle-damage") { - baseMixin.methods.navigateToHeritageFunnel(); - } - else { - router.push({ - name: "root", - query: Object.assign(optionalQuery, { - fmgPage: matchingScenarioMap.destinationFmgPageValue, - }), - params: optionalParams, - }); - } + baseMixin.methods.saveOrder(); + + router.push({ + name: "root", + query: Object.assign(optionalQuery, { + fmgPage: destinationFmgPageValue, + }), + params: optionalParams, + }); } else if (matchingScenarioMap.destinationUrl !== undefined) { + if (matchingScenarioMap.shouldNavigateToHeritageFunnel) { + baseMixin.methods.saveOrder(); + } + navigateToUrl(matchingScenarioMap.destinationUrl, optionalQuery); } } @@ -210,6 +200,7 @@ function navigateToUrl(url, optionalQuery) { for (const queryKey in optionalQuery) { externalUrl.searchParams.append(queryKey, optionalQuery[queryKey]); } + window.location.assign(externalUrl); } @@ -267,4 +258,20 @@ function resetDependentState(component) { return component.default.methods.resetDependentState(); } +// Read info from heritage funnel and reset state or load referral +function handleInfoFromHeritageFunnel() { + var orderInfoJson = baseMixin.methods.getCookieValue(cookieNames.ORDER_INFO); + var orderInfo = orderInfoJson == null ? null : JSON.parse(orderInfoJson); + + if (orderInfo?.ShouldResetState) { + store.dispatch(storeActions.RESET_STATE); + } + else if (orderInfo != null) { + // should load referral here + } + + // Delete cookie once state is loaded or reset + baseMixin.methods.deleteCookie(cookieNames.ORDER_INFO); +} + export default router; \ No newline at end of file diff --git a/src/router/router-constants/navigation-scenarios.js b/src/router/router-constants/navigation-scenarios.js index 55efdcaec..972944d80 100644 --- a/src/router/router-constants/navigation-scenarios.js +++ b/src/router/router-constants/navigation-scenarios.js @@ -8,7 +8,8 @@ const navigationScenarios = { SELECTED_PARTS: "SELECTED_PARTS", SELECTED_DAMAGE_WITH_SINGLE_PART: "SELECTED_DAMAGE_WITH_SINGLE_PART", SELECTED_DAMAGE_WITH_MULTIPLE_PARTS: "SELECTED_DAMAGE_WITH_MULTIPLE_PARTS", - SELECTED_DAMAGE_WITH_PART_QUESTIONS: "SELECTED_DAMAGE_WITH_PART_QUESTIONS" + SELECTED_DAMAGE_WITH_PART_QUESTIONS: "SELECTED_DAMAGE_WITH_PART_QUESTIONS", + MOVE_TO_HERITAGE_FUNNEL: "MOVE_TO_HERITAGE_FUNNEL", }; export { navigationScenarios }; diff --git a/src/router/router-constants/routing-table.js b/src/router/router-constants/routing-table.js index 70e47c832..8fc8ad013 100644 --- a/src/router/router-constants/routing-table.js +++ b/src/router/router-constants/routing-table.js @@ -59,8 +59,9 @@ const routingTable = [ destinationFmgPageValue: fmgPageValues.VEHICLE_STYLE, }, { - scenario: navigationScenarios.CLICKED_FORWARD, + scenario: navigationScenarios.MOVE_TO_HERITAGE_FUNNEL, destinationUrl: externalUrls.HERITAGE_FUNNEL, + shouldNavigateToHeritageFunnel: true }, { scenario: navigationScenarios.SELECTED_DAMAGE_WITH_SINGLE_PART, @@ -89,7 +90,6 @@ const routingTable = [ }, { scenario: navigationScenarios.CLICKED_FORWARD, - // destinationUrl: externalUrls.HERITAGE_FUNNEL, destinationFmgPageValue: fmgPageValues.REVEAL, }, ],