CSR-1384: another tech-review refactor - make wipersOffered a computed
This commit is contained in:
parent
e2ad359408
commit
929cf3e314
2 changed files with 48 additions and 35 deletions
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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) => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue