CSR-1384: another tech-review refactor - make wipersOffered a computed

This commit is contained in:
Adam Caouette 2023-11-08 19:47:16 -05:00
parent e2ad359408
commit 929cf3e314
2 changed files with 48 additions and 35 deletions

View file

@ -82,7 +82,6 @@ export default {
data() { data() {
return { return {
addVapsButton: addVapsButton, addVapsButton: addVapsButton,
wipersOffered: null,
isModalOpened: false, isModalOpened: false,
selectedWipers: this.getSelectedWipers(), selectedWipers: this.getSelectedWipers(),
}; };
@ -249,20 +248,38 @@ export default {
answersCmsData() { answersCmsData() {
return this.getCmsContent(this.vapsTilesCmsName, "Answers"); 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() { buttonsToDisplay() {
const buttons = []; const buttons = [];
if (!this.answersCmsData) return 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 getAnswer = (name, answers) => {
const answerIndex = answers.findIndex((answer) => { const answerIndex = answers.findIndex((answer) => {
return answer.Name === name; return answer.Name === name;
@ -270,7 +287,7 @@ export default {
return answers[answerIndex]; return answers[answerIndex];
}; };
if (!rainDefenseInCart) { if (!this.rainDefenseInCart) {
// NO RAIN DEFENSE IN CART; SHOW RAIN DEFENSE BUTTON // NO RAIN DEFENSE IN CART; SHOW RAIN DEFENSE BUTTON
const modalData = getAnswer("RainDefenseModal", this.answersCmsData); const modalData = getAnswer("RainDefenseModal", this.answersCmsData);
modalData.SubText = "+$" + this.rainDefenseModal?.listPrice; modalData.SubText = "+$" + this.rainDefenseModal?.listPrice;
@ -278,27 +295,26 @@ export default {
} }
const modalData = getAnswer("WipersModal", this.answersCmsData); const modalData = getAnswer("WipersModal", this.answersCmsData);
if (!frontWipersInCart) { if (this.wipersOffered === wipersOfferedStrings.BOTH) {
if (!rearWipersInCart && this.wipersModal?.rearWiperLineItems.length > 0) { // NO REAR WIPERS or FRONT WIPERS IN CART; SHOW COMBO BUTTON
// NO REAR WIPERS or FRONT WIPERS IN CART; SHOW COMBO BUTTON const prices = [
const prices = [ this.wipersModal?.totalFrontPrice,
this.wipersModal?.totalFrontPrice, this.wipersModal?.totalRearPrice,
this.wipersModal?.totalRearPrice, ];
]; prices.sort((a, b) => a - b);
prices.sort((a, b) => a - b); modalData.SubText = "+$" + prices[0] + " - $" + prices[prices.length - 1];
modalData.SubText = "+$" + prices[0] + " - $" + prices[prices.length - 1]; buttons.push(modalData);
this.updateWipersOffered(wipersOfferedStrings.BOTH); }
buttons.push(modalData);
} else { if (this.wipersOffered === wipersOfferedStrings.FRONT) {
// NO FRONT WIPERS IN CART; SHOW ONLY FRONT WIPERS BUTTON // NO FRONT WIPERS IN CART; SHOW ONLY FRONT WIPERS BUTTON
modalData.SubText = "+$" + this.wipersModal?.totalFrontPrice; modalData.SubText = "+$" + this.wipersModal?.totalFrontPrice;
this.updateWipersOffered(wipersOfferedStrings.FRONT); buttons.push(modalData);
buttons.push(modalData); }
}
} else if (!rearWipersInCart && this.wipersModal?.rearWiperLineItems.length > 0) { if (this.wipersOffered === wipersOfferedStrings.REAR) {
// NO REAR WIPERS IN CART; SHOW ONLY REAR WIPERS BUTTON // NO REAR WIPERS IN CART; SHOW ONLY REAR WIPERS BUTTON
modalData.SubText = "+$" + this.wipersModal?.totalRearPrice; modalData.SubText = "+$" + this.wipersModal?.totalRearPrice;
this.updateWipersOffered(wipersOfferedStrings.REAR);
buttons.push(modalData); buttons.push(modalData);
} }

View file

@ -348,10 +348,7 @@ export default {
// Match all available line items to the line items as they are in the store // Match all available line items to the line items as they are in the store
// and rebuild the original structure. // and rebuild the original structure.
const lineItems = mapTaxedLineItemsToStoreFormat( const lineItems = mapTaxedLineItemsToStoreFormat(availableLineItems, lineItemsFromStore);
availableLineItems,
lineItemsFromStore
);
// Call the "next" function to complete the transition to this page. // Call the "next" function to complete the transition to this page.
next(async (vm) => { next(async (vm) => {