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 { required } from "@/helpers/validation-rules";
import { errorMessages } from "@/constants/error-messages"; import { errorMessages } from "@/constants/error-messages";
import { processIfStatements } from "@/helpers/cms-content-helper"; import { processIfStatements } from "@/helpers/cms-content-helper";
import { deepClone } from "@/helpers/object-helper";
// DEFINE VALIDATION RULES // DEFINE VALIDATION RULES
defineRule("checkbox-required", required(errorMessages.OPTION_REQUIRED)); defineRule("checkbox-required", required(errorMessages.OPTION_REQUIRED));
@ -198,6 +199,12 @@ export default {
return null; return null;
} }
}, },
getAnswerFromCms(name, answers) {
const answerIndex = answers.findIndex((answer) => {
return answer.Name === name;
});
return answers[answerIndex];
},
}, },
computed: { computed: {
currentCartItems() { currentCartItems() {
@ -280,21 +287,17 @@ export default {
} }
return result; return result;
}, },
wipersModalDataFromCms() {
return this.getAnswerFromCms("WipersModal", this.answersCmsData);
},
rainDefenseModalDataFromCms() {
return this.getAnswerFromCms("RainDefenseModal", this.answersCmsData);
},
buttonsToDisplay() { buttonsToDisplay() {
const buttons = []; const buttons = [];
if (!this.answersCmsData) return buttons; if (!this.answersCmsData) return buttons;
const getAnswer = (name, answers) => { const wipersModalData = deepClone(this.wipersModalDataFromCms);
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}", "");
if (this.wipersOffered === wipersOfferedStrings.BOTH) { if (this.wipersOffered === wipersOfferedStrings.BOTH) {
// NO REAR WIPERS or FRONT WIPERS IN CART; SHOW COMBO BUTTON // NO REAR WIPERS or FRONT WIPERS IN CART; SHOW COMBO BUTTON
@ -303,27 +306,50 @@ export default {
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]; wipersModalData.SubText = "+$" + prices[0] + " - $" + prices[prices.length - 1];
buttons.push(modalData); wipersModalData.Text = wipersModalData.Text?.replaceAll("{custom:WIPERTYPE}", "");
buttons.push(wipersModalData);
} }
if (this.wipersOffered === wipersOfferedStrings.FRONT) { 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; wipersModalData.SubText = "+$" + this.wipersModal?.totalFrontPrice;
buttons.push(modalData); 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) { 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; wipersModalData.SubText = "+$" + this.wipersModal?.totalRearPrice;
buttons.push(modalData); 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) { 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 rainDefenseModalData = deepClone(this.rainDefenseModalDataFromCms);
modalData.SubText = "+$" + this.rainDefenseModal?.listPrice; rainDefenseModalData.SubText = "+$" + this.rainDefenseModal?.listPrice;
buttons.push(modalData); buttons.push(rainDefenseModalData);
} }
return buttons; return buttons;