From d3a9931b93be3678100675c86378d1b59b8ae9d5 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 13 Feb 2026 15:48:28 -0500 Subject: [PATCH 01/30] CASH-1455 unverified insurance alert CASH-1455 unverified insurance alert for the unverified experiment --- src/assets/img/icons/info-circle-blue.svg | 5 ++++ src/constants/experiments.js | 1 + src/layouts/payment-method/payment-method.vue | 26 +++++++++++++++++++ src/mixins/analytics-mixin.js | 1 + src/store/index.js | 2 ++ src/ux-components/alert/alert.vue | 17 +++++++++++- 6 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 src/assets/img/icons/info-circle-blue.svg diff --git a/src/assets/img/icons/info-circle-blue.svg b/src/assets/img/icons/info-circle-blue.svg new file mode 100644 index 000000000..fca619fb0 --- /dev/null +++ b/src/assets/img/icons/info-circle-blue.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/constants/experiments.js b/src/constants/experiments.js index f81484058..127440e19 100644 --- a/src/constants/experiments.js +++ b/src/constants/experiments.js @@ -41,6 +41,7 @@ const experimentSettings = { SHOW_MOBILE_FIRST_POPUP_REPLACE_WITH_MSR: "Show_Mobile_First_Popup_Replace_With_MSR", OFFER_OEM: "OfferOem", USE_ADYEN_PAYMENT: "UseAdyenPayment", + SHOW_UNVERIFIED_DEDUCT_ENTRY: "ShowUnverifiedDeducEntry", }; const experimentTriggers = { diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 2a6d1d9ed..4d80f84c0 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -53,6 +53,17 @@ v-bind:isDismissible="false" /> +
+ +
+
@@ -865,6 +876,13 @@ export default { shouldDisplayPiaAlert() { return getBoolFromString(this.$route?.query?.piaError); }, + shouldDisplayUnverifiedInsuranceAlert() { + const shouldDisplayUnverifiedDeduct = experimentMixin.methods.hasSettingEqualTo( + experimentSettings.SHOW_UNVERIFIED_DEDUCT_ENTRY, + "true" + ); + return shouldDisplayUnverifiedDeduct; + }, // Necessary to make the watcher of lineItems work // JavaScript does not keep a record of the old value, only a reference to it's location in the memory. // This creates a separate location for oldValue/newValue so they can be compared @@ -1033,7 +1051,15 @@ export default { } } } + + .alert.alert-info.widget-name-UnverifiedInsuranceAlertWidget { + :deep(.alert-heading) { + color: $black; + font-weight: 600; + } + } } + :deep(span.label), :deep(span) { font-family: UrbanistSemibold, Arial, Helvetica, sans-serif; diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index 238bed59d..316553548 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -291,6 +291,7 @@ export default { sessionData.isPia = order?.payment?.isPia ?? false; sessionData.piaType = order?.payment?.piaType; sessionData.parentAccountNumber = order?.payment?.parentAccountNumber; + sessionData.billToAccountNumber = order?.payment?.billToAccountNumber; sessionData.settledTenderAmount = order?.settledTenderAmount; sessionData.recalRequired = containsRecalParts(order?.lineItems); sessionData.recalType = getRecalPartNumbers(order?.lineItems?.glassParts); diff --git a/src/store/index.js b/src/store/index.js index c5d9846f9..c37487cac 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1636,6 +1636,7 @@ export const actions = { isPia, piaType, parentAccountNumber, + billToAccountNumber, settledTenderAmount, recalRequired, recalType, @@ -1709,6 +1710,7 @@ export const actions = { totalPrice: totalPrice, userAgent: userAgent, cashPriceSubTotal: cashPriceSubTotal, + billToAccountNumber: billToAccountNumber, }; return globalMethods.callHttpClient({ diff --git a/src/ux-components/alert/alert.vue b/src/ux-components/alert/alert.vue index cccab36f0..601a8c8ec 100644 --- a/src/ux-components/alert/alert.vue +++ b/src/ux-components/alert/alert.vue @@ -8,7 +8,11 @@ this.alertClass, this.cssClassNameForCmsWidget, ]"> -

{{ alertHeadline }}

+

+ Info Icon + {{ alertHeadline }} +

+