diff --git a/src/fmg-components/funnel-header/funnel-header.vue b/src/fmg-components/funnel-header/funnel-header.vue index f4ece2932..7ce4c814d 100644 --- a/src/fmg-components/funnel-header/funnel-header.vue +++ b/src/fmg-components/funnel-header/funnel-header.vue @@ -108,6 +108,15 @@ export default { } this.globalAlertMessages.push(alertToPush); }, + removeGlobalAlert(alertId) { + const alertIndex = this.globalAlertMessages.findIndex((alert) => alert.id === alertId); + if (alertIndex !== -1) { + this.globalAlertMessages.splice(alertIndex, 1); + } + }, + getGlobalAlerts() { + return this.globalAlertMessages; + }, webchatClicked(event) { event.preventDefault(); this.launchWebchat(); diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index cd3743e34..eb75cf207 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -850,6 +850,18 @@ export default { (newPromo) => !oldPromoCodes.includes(newPromo.promoCode) ); + // Remove any existing promo error alerts for this promo code + const existingAlerts = this.$refs.funnelHeader.getGlobalAlerts(); + if (existingAlerts.length > 0) { + const errorPromoAlertToRemove = existingAlerts.find( + (alert) => + alert.messageHeadline === "Promo code error" && + alert.messageCopy.includes(newlyActivatedPromoCodes[0].promoCode) + ); + errorPromoAlertToRemove && + this.$refs.funnelHeader.removeGlobalAlert(errorPromoAlertToRemove.id); + } + const alert = createPromoSuccessAlert(newlyActivatedPromoCodes[0].promoCode); this.$refs.funnelHeader.pushGlobalAlert(alert, alert.shouldAutoFade); } else if (