From bc6a31455b94a73f81a7eac276d7660155b3be7c Mon Sep 17 00:00:00 2001 From: Chris Redelinghuys Date: Fri, 5 Sep 2025 14:01:04 -0400 Subject: [PATCH 01/18] CASH-1477: Increase font weight --- .../modal/ux-components/modal-button-main/modal-button-main.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/digital-components/modal/ux-components/modal-button-main/modal-button-main.vue b/src/digital-components/modal/ux-components/modal-button-main/modal-button-main.vue index c12dfe498..44e3db9c1 100644 --- a/src/digital-components/modal/ux-components/modal-button-main/modal-button-main.vue +++ b/src/digital-components/modal/ux-components/modal-button-main/modal-button-main.vue @@ -117,7 +117,7 @@ export default { background: transparent; border: 1px solid $blue; color: $blue; - font-weight: 500; + font-weight: 600; transition: all 150ms linear; height: 3rem; &:hover, From e5ca66cc35747b31230cf52fb178443ca85bb30d Mon Sep 17 00:00:00 2001 From: Chris Redelinghuys Date: Fri, 5 Sep 2025 15:13:55 -0400 Subject: [PATCH 02/18] CASH-1477: Darker font for secondary modal cta button --- src/digital-components/modal/modal.vue | 3 +++ .../ux-components/modal-button-main/modal-button-main.vue | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/digital-components/modal/modal.vue b/src/digital-components/modal/modal.vue index 84ea8542b..9167c03b3 100644 --- a/src/digital-components/modal/modal.vue +++ b/src/digital-components/modal/modal.vue @@ -268,6 +268,9 @@ export default { button { margin: 0; border-radius: 50rem; + &.btn-secondary { + font-weight: 600; + } } } } diff --git a/src/digital-components/modal/ux-components/modal-button-main/modal-button-main.vue b/src/digital-components/modal/ux-components/modal-button-main/modal-button-main.vue index 44e3db9c1..c12dfe498 100644 --- a/src/digital-components/modal/ux-components/modal-button-main/modal-button-main.vue +++ b/src/digital-components/modal/ux-components/modal-button-main/modal-button-main.vue @@ -117,7 +117,7 @@ export default { background: transparent; border: 1px solid $blue; color: $blue; - font-weight: 600; + font-weight: 500; transition: all 150ms linear; height: 3rem; &:hover, From 670a5a0f8319609847f5713e885925827525186b Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Mon, 8 Sep 2025 08:42:07 -0400 Subject: [PATCH 03/18] CASH-1450 fixes --- src/constants/damage-locations-selected.js | 2 + src/helpers/damage-helper.js | 53 +++++++ src/layouts/payment-method/payment-method.vue | 18 ++- .../review-dropdown/review-dropdown.vue | 65 ++++---- .../appointment-review.spec.js | 103 ++++++++++++ .../appointment-review/appointment-review.vue | 38 +++++ .../customer-review/customer-review.spec.js | 40 ++--- .../customer-review/customer-review.vue | 2 +- .../opt-in-review/opt-in-review.spec.js | 141 +++++++++++++++++ .../opt-in-review/opt-in-review.vue | 42 +++++ .../parity-damage-review.spec.js | 149 ++++++++++++++++++ .../parity-damage-review.vue | 46 ++++++ 12 files changed, 642 insertions(+), 57 deletions(-) create mode 100644 src/layouts/payment-method/review-dropdown/review-sections/appointment-review/appointment-review.spec.js create mode 100644 src/layouts/payment-method/review-dropdown/review-sections/appointment-review/appointment-review.vue create mode 100644 src/layouts/payment-method/review-dropdown/review-sections/opt-in-review/opt-in-review.spec.js create mode 100644 src/layouts/payment-method/review-dropdown/review-sections/opt-in-review/opt-in-review.vue create mode 100644 src/layouts/payment-method/review-dropdown/review-sections/parity-damage-review/parity-damage-review.spec.js create mode 100644 src/layouts/payment-method/review-dropdown/review-sections/parity-damage-review/parity-damage-review.vue diff --git a/src/constants/damage-locations-selected.js b/src/constants/damage-locations-selected.js index 7ede615cb..848491223 100644 --- a/src/constants/damage-locations-selected.js +++ b/src/constants/damage-locations-selected.js @@ -16,6 +16,8 @@ const damageLocationsSelected = { PASSENGERSIDE: "PassengerSide", STATIONARY: "Stationary", SLIDER: "Slider", + DOOR: "Door", + GLASS: "Glass", }; export { damageLocationsSelected }; diff --git a/src/helpers/damage-helper.js b/src/helpers/damage-helper.js index 13defa5df..1763ffbea 100644 --- a/src/helpers/damage-helper.js +++ b/src/helpers/damage-helper.js @@ -82,3 +82,56 @@ export async function isGlassAvailableForCarId(carId, pageNameToLog) { return true; } + +export function getSideDoorGlassString(glassLocation, glassName) { + let glassNameString; + switch (glassName) { + case glassLocations.BACK: + glassNameString = glassLocations.REAR + " " + glassLocations.DOOR; // "Back Door" + break; + case glassLocations.FRONT: + glassNameString = glassName + " " + glassLocations.DOOR; // "Front Door" + break; + case glassLocations.VENT: + case glassLocations.QUARTER: + glassNameString = glassName; + break; + } + return glassLocation + " " + glassName + " " + glassLocations.GLASS; +} + +export function getDamageInfoWordingText(damageInfo) { + const glassTextArray = []; + + damageInfo.glassToReplace.forEach((item) => { + let string = ""; + if (item.glassLocation === glassLocations.WINDSHIELD) { + string = item.glassLocation; + } + if (item.glassLocation === glassLocations.REAR) { + string = glassLocations.BACK + " " + glassLocations.GLASS; + } + if (item.glassLocation === glassLocations.DRIVER) { + string = getSideDoorGlassString(item.glassLocation, item.glassName); + // ONLY INCLUDE "DOOR" IF IT'S REAR or FRONT (vent or quarter should NOT) + } + if (item.glassLocation === glassLocations.PASSENGER) { + string = getSideDoorGlassString(item.glassLocation, item.glassName); + } + glassTextArray.push(string); + }); + + if (glassTextArray.length === 1) { + return glassTextArray[0]; + } + let damageInfoWordingText = glassTextArray.join(", "); // string + let lastCommaIndex = damageInfoWordingText.lastIndexOf(", "); + if (lastCommaIndex > -1) { + return ( + damageInfoWordingText.slice(0, lastCommaIndex) + + " and " + + damageInfoWordingText.slice(lastCommaIndex + 2, damageInfoWordingText.length) + ); + } + return ""; +} diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 00a06fd70..cd3743e34 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -223,7 +223,8 @@ export default { "payment-method" ); - const reviewDropdownPromise = reviewDropdown.methods.loadInitialData(); + // const reviewDropdownPromise = reviewDropdown.methods.loadInitialData(); + // (removed temporarily for Heritage parity effort) const promiseResultMap = [ { @@ -238,10 +239,11 @@ export default { resultKey: "rainDefense", promise: rainDefensePromise, }, - { - resultKey: "reviewDropdownData", - promise: reviewDropdownPromise, - }, + // { + // resultKey: "reviewDropdownData", + // promise: reviewDropdownPromise, + // }, + // (removed temporarily for Heritage parity effort) ]; const resultMap = await settleAllPromises(promiseResultMap); @@ -346,7 +348,8 @@ export default { ); vm.updateFooterButtonText(vm.customCtaCopy); - vm.$refs.reviewDropdown.initializeComponent(resultMap.reviewDropdownData); + // vm.$refs.reviewDropdown.initializeComponent(resultMap.reviewDropdownData); + // (removed temporarily for Heritage parity effort) if (revalidatePromoResponse) { const revalidateAlerts = buildToastMessagesFromRevalidateOrValidatePromoResponse( @@ -892,6 +895,9 @@ export default { text-transform: lowercase; } } + :deep(.review-table p) { + margin: 0.25rem 0 0 0; + } } .checkbox-group { align-items: start; diff --git a/src/layouts/payment-method/review-dropdown/review-dropdown.vue b/src/layouts/payment-method/review-dropdown/review-dropdown.vue index 9b568d48f..9c7c446f4 100644 --- a/src/layouts/payment-method/review-dropdown/review-dropdown.vue +++ b/src/layouts/payment-method/review-dropdown/review-dropdown.vue @@ -15,30 +15,27 @@
- + cmsWidgetName="AppointmentWidget" + :apptWordingText="apptWordingText" />
- - -
- - - -
- - + :damage="damageInfo" + :vehicle="vehicleInfo" />
+
+ + +