diff --git a/src/layouts/review/review-sections/damage-review/damage-review.vue b/src/layouts/review/review-sections/damage-review/damage-review.vue index 67ee1ade6..da83d1a48 100644 --- a/src/layouts/review/review-sections/damage-review/damage-review.vue +++ b/src/layouts/review/review-sections/damage-review/damage-review.vue @@ -23,17 +23,39 @@ export default { editClicked() { this.$emit("edit-clicked"); }, + getAnswersNullSafe(widgetName) { + const rawAnswers = this.getCmsContent(widgetName, "Answers"); + + return rawAnswers ? rawAnswers : []; + }, getLocationAnswer(damageLocation) { - if(!this.locationAnswers) { - return undefined; - } - - return this.locationAnswers.find((answer) => answer.Name === damageLocation); + return this.locationAnswers?.find((answer) => answer.Name === damageLocation); + }, + getGlassPieces(damageLocation) { + return this.damage?.glassToReplace?.filter( + (item) => item.glassLocation === damageLocation + ); + }, + generateBulletedListFromAnswers(answers) { + let list = ""; + + return list; }, }, computed: { displayContent() { - return [...this.windshieldCopy]; + return [ + ...this.windshieldCopy, + ...this.driverSideCopy, + ...this.passengerSideCopy, + ...this.rearCopy, + ]; }, hasWindshieldDamage() { return ( @@ -43,6 +65,21 @@ export default { ) ); }, + hasDriverSideDamage() { + const driverPieces = this.getGlassPieces(damageLocationsSelected.DRIVER); + + return !!driverPieces?.length; + }, + hasPassengerSideDamage() { + const passengerPieces = this.getGlassPieces(damageLocationsSelected.PASSENGER); + + return !!passengerPieces?.length; + }, + hasRearDamage() { + const rearPieces = this.getGlassPieces(damageLocationsSelected.REAR); + + return !!rearPieces?.length; + }, windshieldCopy() { const answerContent = this.getLocationAnswer(damageLocationsSelected.WINDSHIELD); @@ -52,8 +89,53 @@ export default { return []; } }, + driverSideCopy() { + const answerContent = this.getLocationAnswer(damageLocationsSelected.DRIVER); + const damageAnswers = this.getAnswersNullSafe(answerContent?.SubWidgetName); + const damageAnswersOnOrder = damageAnswers?.filter((answer) => + this.damage?.glassToReplace?.some( + (glassPiece) => answer.Name === glassPiece.glassName + ) + ); + + if (this.hasDriverSideDamage) { + return [ + answerContent?.Text, + this.generateBulletedListFromAnswers(damageAnswersOnOrder), + ]; + } else { + return []; + } + }, + passengerSideCopy() { + const answerContent = this.getLocationAnswer(damageLocationsSelected.PASSENGER); + const damageAnswers = this.getAnswersNullSafe(answerContent?.SubWidgetName); + const damageAnswersOnOrder = damageAnswers?.filter((answer) => + this.damage?.glassToReplace?.some( + (glassPiece) => answer.Name === glassPiece.glassName + ) + ); + + if (this.hasPassengerSideDamage) { + return [ + answerContent?.Text, + this.generateBulletedListFromAnswers(damageAnswersOnOrder), + ]; + } else { + return []; + } + }, + rearCopy() { + const answerContent = this.getLocationAnswer(damageLocationsSelected.REAR); + + if (this.hasRearDamage) { + return [answerContent?.Text]; + } else { + return []; + } + }, locationAnswers() { - return this.getCmsContent(this.damageLocationsWidgetName, "Answers"); + return this.getAnswersNullSafe(this.damageLocationsWidgetName); }, }, components: {