From b9ec2a4623073a1200676334ae1b5d6c0b12f4bf Mon Sep 17 00:00:00 2001 From: Adam Caouette Date: Tue, 19 Jul 2022 12:26:50 -0400 Subject: [PATCH] CSR-108: refactors --- src/layouts/part-questions/part-questions.vue | 56 ++++++++----------- 1 file changed, 24 insertions(+), 32 deletions(-) diff --git a/src/layouts/part-questions/part-questions.vue b/src/layouts/part-questions/part-questions.vue index 54c1e22ce..f5ec4841d 100644 --- a/src/layouts/part-questions/part-questions.vue +++ b/src/layouts/part-questions/part-questions.vue @@ -12,6 +12,7 @@
@@ -87,11 +88,16 @@ export default { data() { return { selectedModel: [], - partsQuestionsData: [], - waitingForLoad: true, + partsQuestionsData: this.$store.getters.pageData(fmgPageValues.PART_QUESTIONS).partsOrQuestions.filter((p) => { + if (Array.isArray(p.partQuestions) && p.partQuestions.length > 0) { + return { + glassName: p.glassName, + glassLocation: p.glassLocation, + partQuestions: p.partQuestions, + }; + } + }), currentPartNum: 0, - glassNameAndParts: [], - hasMultipleParts: false, }; }, computed: { @@ -102,22 +108,6 @@ export default { return this.getCmsContent("AlertPartsQuestions", "BodyText"); }, }, - async mounted() { - const questionData = await this.$store.getters.pageData(fmgPageValues.PART_QUESTIONS); - - // Map API result data, to part-questions data structure - this.partsQuestionsData = questionData.partsOrQuestions.filter((p) => { - if (Array.isArray(p.partQuestions) && p.partQuestions.length > 0) { - return { - glassName: p.glassName, - glassLocation: p.glassLocation, - partQuestions: p.partQuestions, - }; - } - }); - - this.waitingForLoad = false; - }, methods: { showThisPartQuestionChain(part, i) { if (part.partQuestions?.length < 1) { return false; } // return false if only one partQuestion @@ -152,14 +142,14 @@ export default { if (!partsLookup) { return } - this.glassNameAndParts = partsLookup.data.glassNameAndParts; + const glassNameAndParts = partsLookup.data.glassNameAndParts; // test response data for multiple parts - this.hasMultipleParts = this.glassNameAndParts.some((glass) => glass.parts?.length > 1); + const hasMultipleParts = glassNameAndParts.some((glass) => glass.parts?.length > 1); // loop through all glass items const collectedGlassParts = []; - this.glassNameAndParts.forEach((glass) => { + glassNameAndParts.forEach((glass) => { if (Array.isArray(glass.parts) && glass.parts.length === 1) { const singlePart = glass.parts[0]; collectedGlassParts.push({ @@ -172,14 +162,16 @@ export default { }) } }); - store.commit(storeMutations.UPDATE_GLASS_PARTS, collectedGlassParts); - this.navigateForward(); + if (!hasMultipleParts) { + store.commit(storeMutations.UPDATE_GLASS_PARTS, collectedGlassParts); + } + this.navigateForward(hasMultipleParts, glassNameAndParts); }, - async navigateForward() { - if (this.hasMultipleParts) { + async navigateForward(hasMultipleParts, glassNameAndParts) { + if (hasMultipleParts) { // if multiple parts on any glass // go to vehicle-parts page and pass the partsData - this.$router.navigate(this.navigationScenarios.ANSWERED_QUESTIONS_WITH_MULTIPLE_PARTS,this.$route,{},{},{partsOrQuestions: this.glassNameAndParts}); + this.$router.navigate(this.navigationScenarios.ANSWERED_QUESTIONS_WITH_MULTIPLE_PARTS,this.$route,{},{},{partsOrQuestions: glassNameAndParts}); } else { // if single parts only // go to quote page @@ -212,12 +204,12 @@ export default {