Merge pull request #1562 from Safelite/feature/CSR-1813-bugfix-ajc
Feature/CSR-1813 bugfix ajc
This commit is contained in:
commit
58cb2b6b64
1 changed files with 46 additions and 20 deletions
|
|
@ -62,6 +62,7 @@ import { defineRule } from "vee-validate";
|
|||
import { required } from "@/helpers/validation-rules";
|
||||
import { errorMessages } from "@/constants/error-messages";
|
||||
import { processIfStatements } from "@/helpers/cms-content-helper";
|
||||
import { deepClone } from "@/helpers/object-helper";
|
||||
|
||||
// DEFINE VALIDATION RULES
|
||||
defineRule("checkbox-required", required(errorMessages.OPTION_REQUIRED));
|
||||
|
|
@ -198,6 +199,12 @@ export default {
|
|||
return null;
|
||||
}
|
||||
},
|
||||
getAnswerFromCms(name, answers) {
|
||||
const answerIndex = answers.findIndex((answer) => {
|
||||
return answer.Name === name;
|
||||
});
|
||||
return answers[answerIndex];
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
currentCartItems() {
|
||||
|
|
@ -280,21 +287,17 @@ export default {
|
|||
}
|
||||
return result;
|
||||
},
|
||||
wipersModalDataFromCms() {
|
||||
return this.getAnswerFromCms("WipersModal", this.answersCmsData);
|
||||
},
|
||||
rainDefenseModalDataFromCms() {
|
||||
return this.getAnswerFromCms("RainDefenseModal", this.answersCmsData);
|
||||
},
|
||||
buttonsToDisplay() {
|
||||
const buttons = [];
|
||||
if (!this.answersCmsData) return buttons;
|
||||
|
||||
const getAnswer = (name, answers) => {
|
||||
const answerIndex = answers.findIndex((answer) => {
|
||||
return answer.Name === name;
|
||||
});
|
||||
return answers[answerIndex];
|
||||
};
|
||||
|
||||
const modalData = getAnswer("WipersModal", this.answersCmsData);
|
||||
|
||||
// remove custom var for now
|
||||
modalData.Text = modalData.Text?.replaceAll("{custom:WIPERTYPE}", "");
|
||||
const wipersModalData = deepClone(this.wipersModalDataFromCms);
|
||||
|
||||
if (this.wipersOffered === wipersOfferedStrings.BOTH) {
|
||||
// NO REAR WIPERS or FRONT WIPERS IN CART; SHOW COMBO BUTTON
|
||||
|
|
@ -303,27 +306,50 @@ export default {
|
|||
this.wipersModal?.totalRearPrice,
|
||||
];
|
||||
prices.sort((a, b) => a - b);
|
||||
modalData.SubText = "+$" + prices[0] + " - $" + prices[prices.length - 1];
|
||||
buttons.push(modalData);
|
||||
wipersModalData.SubText = "+$" + prices[0] + " - $" + prices[prices.length - 1];
|
||||
wipersModalData.Text = wipersModalData.Text?.replaceAll("{custom:WIPERTYPE}", "");
|
||||
buttons.push(wipersModalData);
|
||||
}
|
||||
|
||||
if (this.wipersOffered === wipersOfferedStrings.FRONT) {
|
||||
// NO FRONT WIPERS IN CART; SHOW ONLY FRONT WIPERS BUTTON
|
||||
modalData.SubText = "+$" + this.wipersModal?.totalFrontPrice;
|
||||
buttons.push(modalData);
|
||||
wipersModalData.SubText = "+$" + this.wipersModal?.totalFrontPrice;
|
||||
if (this.rearWipersInCart) {
|
||||
wipersModalData.Text = wipersModalData.Text?.replaceAll(
|
||||
"{custom:WIPERTYPE}",
|
||||
wipersOfferedStrings.FRONT.toLowerCase() + " "
|
||||
);
|
||||
} else {
|
||||
wipersModalData.Text = wipersModalData.Text?.replaceAll(
|
||||
"{custom:WIPERTYPE}",
|
||||
""
|
||||
);
|
||||
}
|
||||
buttons.push(wipersModalData);
|
||||
}
|
||||
|
||||
if (this.wipersOffered === wipersOfferedStrings.REAR) {
|
||||
// NO REAR WIPERS IN CART; SHOW ONLY REAR WIPERS BUTTON
|
||||
modalData.SubText = "+$" + this.wipersModal?.totalRearPrice;
|
||||
buttons.push(modalData);
|
||||
wipersModalData.SubText = "+$" + this.wipersModal?.totalRearPrice;
|
||||
if (this.frontWipersInCart) {
|
||||
wipersModalData.Text = wipersModalData.Text?.replaceAll(
|
||||
"{custom:WIPERTYPE}",
|
||||
wipersOfferedStrings.REAR.toLowerCase() + " "
|
||||
);
|
||||
} else {
|
||||
wipersModalData.Text = wipersModalData.Text?.replaceAll(
|
||||
"{custom:WIPERTYPE}",
|
||||
""
|
||||
);
|
||||
}
|
||||
buttons.push(wipersModalData);
|
||||
}
|
||||
|
||||
if (!this.rainDefenseInCart) {
|
||||
// NO RAIN DEFENSE IN CART; SHOW RAIN DEFENSE BUTTON
|
||||
const modalData = getAnswer("RainDefenseModal", this.answersCmsData);
|
||||
modalData.SubText = "+$" + this.rainDefenseModal?.listPrice;
|
||||
buttons.push(modalData);
|
||||
const rainDefenseModalData = deepClone(this.rainDefenseModalDataFromCms);
|
||||
rainDefenseModalData.SubText = "+$" + this.rainDefenseModal?.listPrice;
|
||||
buttons.push(rainDefenseModalData);
|
||||
}
|
||||
|
||||
return buttons;
|
||||
|
|
|
|||
Loading…
Reference in a new issue