Merge pull request #1562 from Safelite/feature/CSR-1813-bugfix-ajc

Feature/CSR-1813 bugfix ajc
This commit is contained in:
AdamCaouetteSafelite 2023-11-22 07:54:38 -05:00 committed by GitHub
commit 58cb2b6b64
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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;