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 { 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;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue