From 3028ca78837528e460c149cf4c00342c2fca5604 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Mon, 18 Nov 2024 14:59:52 -0500 Subject: [PATCH 01/12] CSR-2370: add new getter var to use in CMS for payment-method subheader logic --- src/layouts/confirmation/confirmation.vue | 4 +++- src/store/index.js | 10 +++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index a42e724f0..190d47769 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -344,7 +344,9 @@ export default { } if (this.AppointmentType == AppointmentTypeStrings.DROP_OFF) { if ( - this.submittedOrder?.schedule?.routeCode.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF) + this.submittedOrder?.schedule?.routeCode.includes( + RouteCodeFlags.OVERNIGHT_DROP_OFF + ) ) { return `Drop off before 5:30 PM`; } else { diff --git a/src/store/index.js b/src/store/index.js index ca10f8f62..a5d1f4e68 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -939,7 +939,7 @@ export const getters = { .reduce((r, c) => Object.assign(r, c), {}) ?? {}, isVerifiedAndDeductibleZeroConfirmed: (state) => { - // used as a CMS variable on /payment-method, needed for FunnelSubHeaderWidget on cart pages + // used in CMS on /payment-method in Header Sub Text, for FunnelSubHeaderWidget on cart pages if ( state.order.policy.currentDeductible === 0 && getters.coverageIsVerified(state) && @@ -949,6 +949,14 @@ export const getters = { } return false; }, + isItacOrNoComp: (state) => { + // used in CMS on /payment-method in Header Sub Text, for FunnelSubHeaderWidget on cart pages + if (state.order.policy.isNoComp || state.order.policy.isItac) { + return true; + } else { + return false; + } + }, requiresVerifiedRedirecting: (state) => { return state.order?.referralNumber?.length === 6; }, From 44abc67fb32a4656b6a1f8086e0f2c9c32959a93 Mon Sep 17 00:00:00 2001 From: Sneha Date: Tue, 19 Nov 2024 18:17:54 +0530 Subject: [PATCH 02/12] CSR-2395 --- src/fmg-components/cart/cart.spec.js | 6 ------ src/fmg-components/cart/cart.vue | 19 +++++++++++++++++-- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/fmg-components/cart/cart.spec.js b/src/fmg-components/cart/cart.spec.js index 10207c8bb..178dcfdf4 100644 --- a/src/fmg-components/cart/cart.spec.js +++ b/src/fmg-components/cart/cart.spec.js @@ -341,12 +341,6 @@ describe("cart.vue", () => { expect(wrapper.vm.servicePackageDiscountCartItem).not.toBeNull(); expect(wrapper.vm.servicePackageDiscountCartItem.subTotal).toEqual(-70); expect(wrapper.vm.servicePackageDiscountCartItem.salesTax).toEqual(0); - - const found = - wrapper.vm.cartItems.findIndex( - (cartItem) => cartItem == wrapper.vm.servicePackageDiscountCartItem - ) >= 0; - expect(found).toBe(true); }); // Other Supporting Items Cart Item diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index 95d9cc239..a26821646 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -162,10 +162,15 @@ import promoModalQuestion from "@/fmg-components/promo-modal-question/promo-moda // Mixins import baseMixin from "@/mixins/base-mixin.js"; +import experimentMixin from "@/mixins/experiment-mixin.js"; // Helpers import { deepClone } from "@/helpers/object-helper"; -import { getHighestFullySatisfiedTier, getPackageContents } from "@/helpers/service-package-helper"; +import { + getHighestFullySatisfiedTier, + getPackageContents, + getDiscountPackageName, +} from "@/helpers/service-package-helper"; import { getPromoCodeWithoutBundleIdentifier } from "@/helpers/promotions-helper"; import { storeActions } from "@/constants/store-actions"; @@ -174,6 +179,7 @@ import { partTypeStrings } from "@/constants/part-type-strings"; import { cartItemCategories } from "@/constants/cart-item-categories"; import { cartItemTypes } from "@/constants/cart-item-types"; import { coverageStatus, cartItemTypesCoveredByInsurance } from "@/constants/insurance"; +import { experimentSettings } from "@/constants/experiments"; export default { name: "cart", @@ -424,7 +430,10 @@ export default { cartItems.push(this.mobileFeeCartItem); } - if (this.servicePackageDiscountCartItem) { + if ( + this.servicePackageDiscountCartItem && + this.discountPackageNames == this.packageLevel + ) { cartItems.push(this.servicePackageDiscountCartItem); } @@ -441,6 +450,12 @@ export default { return cartItems; }, }, + discountPackageNames() { + const discountServicePackage = experimentMixin.methods.getSettingValue( + experimentSettings.PROMO_ON_PACKAGE + ); + return getDiscountPackageName(discountServicePackage); + }, servicePackageTitleWidget() { const servicePackageNames = this.getCmsContent( this.servicePackageOptionsCmsName, From 25998f35cd991e33069526c17768a6de6a39f522 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 19 Nov 2024 14:25:54 -0500 Subject: [PATCH 03/12] CSR-2404 fix package discount box alignment. --- .../service-package-radio/service-package-radio.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue index af8c488f9..473c0bf2f 100644 --- a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue +++ b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue @@ -315,7 +315,7 @@ export default { font-weight: 600; font-size: 0.875rem; display: flex; - justify-content: space-between; + justify-content: flex-end div.strikethrough-discount-price { text-decoration: line-through; margin-right: 0.5rem; @@ -393,7 +393,7 @@ export default { display: flex; flex-direction: row; margin: auto; - margin-left: -2rem; + margin-left: -1.25rem; padding: 0.5rem 1rem; border-radius: 0.25rem; margin-top: 0.5rem; From ae6b9234e15a0be5913417496d64273180ad8a74 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Tue, 19 Nov 2024 14:45:00 -0500 Subject: [PATCH 04/12] CSR-2404 fix code error. --- .../service-package-radio/service-package-radio.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue index 473c0bf2f..f2962631f 100644 --- a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue +++ b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue @@ -315,7 +315,7 @@ export default { font-weight: 600; font-size: 0.875rem; display: flex; - justify-content: flex-end + justify-content: flex-end; div.strikethrough-discount-price { text-decoration: line-through; margin-right: 0.5rem; From 4172ec04fcbab052ced553b88a7fd4138205cbcc Mon Sep 17 00:00:00 2001 From: Sneha Date: Wed, 20 Nov 2024 16:09:47 +0530 Subject: [PATCH 05/12] CSR-2395 --- src/fmg-components/cart/cart.spec.js | 7 ++----- src/fmg-components/cart/cart.vue | 26 +++++++++++++++++++------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/fmg-components/cart/cart.spec.js b/src/fmg-components/cart/cart.spec.js index 178dcfdf4..5adff3ab3 100644 --- a/src/fmg-components/cart/cart.spec.js +++ b/src/fmg-components/cart/cart.spec.js @@ -307,7 +307,7 @@ describe("cart.vue", () => { }); // Service package discount Fee Cart Item - test("if there is service package discount fee on the order, a service package discount cart item should be added to the cart", () => { + test("only if there is service package discount fee for the package, a service package discount cart item should be added to the cart", () => { // Arrange const lineItems = { glassParts: [], @@ -336,11 +336,8 @@ describe("cart.vue", () => { availableVaps: availableVaps, }, }); - // Assert - expect(wrapper.vm.servicePackageDiscountCartItem).not.toBeNull(); - expect(wrapper.vm.servicePackageDiscountCartItem.subTotal).toEqual(-70); - expect(wrapper.vm.servicePackageDiscountCartItem.salesTax).toEqual(0); + expect(wrapper.vm.servicePackageDiscountCartItem).toBeNull(); }); // Other Supporting Items Cart Item diff --git a/src/fmg-components/cart/cart.vue b/src/fmg-components/cart/cart.vue index a26821646..52049b0c9 100644 --- a/src/fmg-components/cart/cart.vue +++ b/src/fmg-components/cart/cart.vue @@ -297,8 +297,16 @@ export default { this.lineItems[category] = this.lineItems[category].filter( (lineItemsToKeep) => lineItemsToKeep.cartItemType != cartItemType ); - - await this.dispatchStoreAction(storeActions.SAVE_VAPS, this.lineItems.vaps, false); + if (category == cartItemCategories.VAPS) { + await this.dispatchStoreAction(storeActions.SAVE_VAPS, this.lineItems.vaps, false); + } + if (category == cartItemCategories.SUPPORTING_ITEMS) { + await this.dispatchStoreAction( + storeActions.SAVE_SUPPORTING_ITEMS_SUPPRESSING_STATE_RESETTING, + this.lineItems.supportingItems, + false + ); + } }, async saveVaps(lineItems) { @@ -430,11 +438,15 @@ export default { cartItems.push(this.mobileFeeCartItem); } - if ( - this.servicePackageDiscountCartItem && - this.discountPackageNames == this.packageLevel - ) { - cartItems.push(this.servicePackageDiscountCartItem); + if (this.servicePackageDiscountCartItem) { + if (this.discountPackageNames != this.packageLevel) { + this.removeItem( + this.servicePackageDiscountCartItem.cartItemType, + cartItemCategories.SUPPORTING_ITEMS + ); + } else { + cartItems.push(this.servicePackageDiscountCartItem); + } } if (this.premiumAppointmentDiscountCartItem) { From 67b7efc50ede28fbd10cc2345dd92eebdabeac7f Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 20 Nov 2024 07:03:13 -0500 Subject: [PATCH 06/12] CSR-2401 back navigation issue between NextGen and Heritage CSR-2401 back navigation issue between NextGen and Heritage --- src/helpers/heritage-integration/navigation-helper.js | 6 +++++- src/layouts/service-location/service-location.vue | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js index a0a61b7f4..5e71bb5b7 100644 --- a/src/helpers/heritage-integration/navigation-helper.js +++ b/src/helpers/heritage-integration/navigation-helper.js @@ -109,7 +109,7 @@ export async function getImplicitNavigation(toRoute) { Used to navigate to the heritage funnel with the correct query string and url. */ -export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLog }) { +export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLog, navType }) { const log = getQuerystringParameter(queryStrings.LOG); if (log === "true") { console.log("------------- Navigate to heritage start -----------------"); @@ -136,6 +136,10 @@ export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLo heritageParms["promo"] = promo; } + if (navType) { + heritageParms["navType"] = navType; + } + if ( (process.env.VUE_APP_HERITAGE_FUNNEL.includes("fixmyglasstest") && process.env.VUE_APP_CURRENT_ENVIRONMENT === "Localhost") || diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 93bdb6f27..9a6e649ec 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -520,7 +520,11 @@ export default { (payment?.insuranceCoverage?.isVerified || store.getters.order.referralNumber.length === 6) ) { - navigateToHeritageFunnel({ shouldSaveSession: false }); + navigateToHeritageFunnel({ + shouldSaveSession: false, + pageNameToLog: "service-location", + navType: "back", + }); } else { this.$router.navigateWithoutSaving( this.navigationScenarios.CLICKED_BACK, From 990f68fa1558895e4dc382c7ca6b0b7d442de6ad Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 20 Nov 2024 14:32:25 -0500 Subject: [PATCH 07/12] CSR-2405 recal text corrections CSR-2405 recal text corrections. the recal text was being driven by the store getter which is only updated on page transition. Changed it to use the page scoped version of insurance selected. --- src/layouts/quote/quote.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 25826714c..5b8695d3e 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -428,7 +428,8 @@ export default { ); }, shouldHideRecalibration() { - return store.getters.shouldHideRecalibration; + if (this.isInsuranceSelected) return false; + return (experimentMixin.methods.getSettingValue(experimentSettings.RECAL_PRICE_REMOVE)?.toLowerCase() === "true" && this.isRecalibrationOnOrder); }, showAfterpayBanner() { return ( From b2cbe754411abee9c40b670b9b0743ac79694ada Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Wed, 20 Nov 2024 15:38:40 -0500 Subject: [PATCH 08/12] CSR-2404 fix weight and alignment. --- .../service-package-radio/service-package-radio.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue index f2962631f..ec2929691 100644 --- a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue +++ b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue @@ -312,10 +312,11 @@ export default { &.service-package-discount { color: $green; text-align: end; - font-weight: 600; + font-weight: 400; font-size: 0.875rem; display: flex; justify-content: flex-end; + align-items: center; div.strikethrough-discount-price { text-decoration: line-through; margin-right: 0.5rem; From 61e7e13fcb3b05df572fae75ae46811a13cbeb51 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Wed, 20 Nov 2024 16:31:22 -0500 Subject: [PATCH 09/12] CSR-2404 fix font weight. --- .../service-package-radio/service-package-radio.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue index ec2929691..6a92c69a7 100644 --- a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue +++ b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue @@ -312,7 +312,7 @@ export default { &.service-package-discount { color: $green; text-align: end; - font-weight: 400; + font-weight: 600; font-size: 0.875rem; display: flex; justify-content: flex-end; @@ -320,7 +320,7 @@ export default { div.strikethrough-discount-price { text-decoration: line-through; margin-right: 0.5rem; - font-weight: 600; + font-weight: 400; font-size: 0.75rem; line-height: 20px; color: $gray-550; From 03ca3bc39f810de66308939c348fbc137e49383c Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Thu, 21 Nov 2024 13:09:52 -0500 Subject: [PATCH 10/12] CSR-2404 fix word wrap. --- .../service-package-radio/service-package-radio.vue | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue index 6a92c69a7..b147447f6 100644 --- a/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue +++ b/src/layouts/quote/service-package-question/service-package-radio/service-package-radio.vue @@ -276,11 +276,16 @@ export default { max-height: 500px; } + .row { + align-items: center; + } + p { font-weight: 600; display: flex; justify-content: space-between; align-items: center; + white-space: nowrap; span { &.pricing-info { color: $green; From dadd895aa737660b58096948b6fd48f826a1f31c Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Fri, 22 Nov 2024 09:05:50 -0500 Subject: [PATCH 11/12] WIP Test fix or iPhone. --- src/styles/common-styles.scss | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/styles/common-styles.scss b/src/styles/common-styles.scss index 730712297..97e0a072c 100644 --- a/src/styles/common-styles.scss +++ b/src/styles/common-styles.scss @@ -68,6 +68,18 @@ body { height: 1px; overflow: hidden; } + + // Fix "iOS viewport scroll bug" issue on iPhone + // where bottom of page is covered by address bar + @media only screen + and (min-device-width: 375px) + and (max-device-width: 812px) + and (-webkit-min-device-pixel-ratio: 3) + and (orientation: portrait) { + .page-container-grouped-styles { + padding-bottom: 3rem; + } + } } .modal-open { .container-fluid { From 54b8282fb4e6f90b984ebb8d5837d33af9fba62d Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Fri, 22 Nov 2024 10:58:19 -0500 Subject: [PATCH 12/12] CSR-2409 test iOS viewport fix. --- src/styles/common-styles.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/common-styles.scss b/src/styles/common-styles.scss index 97e0a072c..32b837dc3 100644 --- a/src/styles/common-styles.scss +++ b/src/styles/common-styles.scss @@ -10,7 +10,7 @@ body { overflow-x: unset; } &.page-container-grouped-styles { - height: 100vh; + height: 100dvh; display: flex; flex-direction: column; }