From 929cf3e314bf1c937d4fea2303f5caebd3778dd0 Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Wed, 8 Nov 2023 19:47:16 -0500 Subject: [PATCH] CSR-1384: another tech-review refactor - make wipersOffered a computed --- .../add-vaps-modal-buttons.vue | 78 +++++++++++-------- src/layouts/payment/payment.vue | 5 +- 2 files changed, 48 insertions(+), 35 deletions(-) diff --git a/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue b/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue index 9d138d95a..c822fa318 100644 --- a/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue +++ b/src/layouts/payment-method/add-vaps-modal-buttons/add-vaps-modal-buttons.vue @@ -82,7 +82,6 @@ export default { data() { return { addVapsButton: addVapsButton, - wipersOffered: null, isModalOpened: false, selectedWipers: this.getSelectedWipers(), }; @@ -249,20 +248,38 @@ export default { answersCmsData() { return this.getCmsContent(this.vapsTilesCmsName, "Answers"); }, + rainDefenseInCart() { + return this.currentCartItems.vaps?.some((vap) => { + return vap?.partType === partTypeStrings.RAIN_DEFENSE; + }); + }, + frontWipersInCart() { + return this.currentCartItems.vaps?.some((vap) => { + return vap?.partType?.includes(partTypeStrings.FRONT_WIPER); + }); + }, + rearWipersInCart() { + return this.currentCartItems.vaps?.some((vap) => { + return vap?.partType?.includes(partTypeStrings.REAR_WIPER); + }); + }, + wipersOffered() { + let result; + if (!this.frontWipersInCart) { + if (!this.rearWipersInCart && this.wipersModal?.rearWiperLineItems.length > 0) { + result = wipersOfferedStrings.BOTH; + } else { + result = wipersOfferedStrings.FRONT; + } + } else if (!this.rearWipersInCart && this.wipersModal?.rearWiperLineItems.length > 0) { + result = wipersOfferedStrings.REAR; + } + return result; + }, buttonsToDisplay() { const buttons = []; if (!this.answersCmsData) return buttons; - const rainDefenseInCart = this.currentCartItems.vaps?.some((vap) => { - return vap?.partType === partTypeStrings.RAIN_DEFENSE; - }); - const frontWipersInCart = this.currentCartItems.vaps?.some((vap) => { - return vap?.partType?.includes(partTypeStrings.FRONT_WIPER); - }); - const rearWipersInCart = this.currentCartItems.vaps?.some((vap) => { - return vap?.partType?.includes(partTypeStrings.REAR_WIPER); - }); - const getAnswer = (name, answers) => { const answerIndex = answers.findIndex((answer) => { return answer.Name === name; @@ -270,7 +287,7 @@ export default { return answers[answerIndex]; }; - if (!rainDefenseInCart) { + if (!this.rainDefenseInCart) { // NO RAIN DEFENSE IN CART; SHOW RAIN DEFENSE BUTTON const modalData = getAnswer("RainDefenseModal", this.answersCmsData); modalData.SubText = "+$" + this.rainDefenseModal?.listPrice; @@ -278,27 +295,26 @@ export default { } const modalData = getAnswer("WipersModal", this.answersCmsData); - if (!frontWipersInCart) { - if (!rearWipersInCart && this.wipersModal?.rearWiperLineItems.length > 0) { - // NO REAR WIPERS or FRONT WIPERS IN CART; SHOW COMBO BUTTON - const prices = [ - this.wipersModal?.totalFrontPrice, - this.wipersModal?.totalRearPrice, - ]; - prices.sort((a, b) => a - b); - modalData.SubText = "+$" + prices[0] + " - $" + prices[prices.length - 1]; - this.updateWipersOffered(wipersOfferedStrings.BOTH); - buttons.push(modalData); - } else { - // NO FRONT WIPERS IN CART; SHOW ONLY FRONT WIPERS BUTTON - modalData.SubText = "+$" + this.wipersModal?.totalFrontPrice; - this.updateWipersOffered(wipersOfferedStrings.FRONT); - buttons.push(modalData); - } - } else if (!rearWipersInCart && this.wipersModal?.rearWiperLineItems.length > 0) { + if (this.wipersOffered === wipersOfferedStrings.BOTH) { + // NO REAR WIPERS or FRONT WIPERS IN CART; SHOW COMBO BUTTON + const prices = [ + this.wipersModal?.totalFrontPrice, + this.wipersModal?.totalRearPrice, + ]; + prices.sort((a, b) => a - b); + modalData.SubText = "+$" + prices[0] + " - $" + prices[prices.length - 1]; + buttons.push(modalData); + } + + if (this.wipersOffered === wipersOfferedStrings.FRONT) { + // NO FRONT WIPERS IN CART; SHOW ONLY FRONT WIPERS BUTTON + modalData.SubText = "+$" + this.wipersModal?.totalFrontPrice; + buttons.push(modalData); + } + + if (this.wipersOffered === wipersOfferedStrings.REAR) { // NO REAR WIPERS IN CART; SHOW ONLY REAR WIPERS BUTTON modalData.SubText = "+$" + this.wipersModal?.totalRearPrice; - this.updateWipersOffered(wipersOfferedStrings.REAR); buttons.push(modalData); } diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index cc8b911eb..fa8d91676 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -348,10 +348,7 @@ export default { // Match all available line items to the line items as they are in the store // and rebuild the original structure. - const lineItems = mapTaxedLineItemsToStoreFormat( - availableLineItems, - lineItemsFromStore - ); + const lineItems = mapTaxedLineItemsToStoreFormat(availableLineItems, lineItemsFromStore); // Call the "next" function to complete the transition to this page. next(async (vm) => {