diff --git a/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts b/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts index 8f760af6e..b43595b39 100644 --- a/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts +++ b/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts @@ -11,6 +11,28 @@ interface UseReviewerAnswerProps { const useReviewerAnswer = ({ currentCardIndex, questionList, updatedSelectedCategory }: UseReviewerAnswerProps) => { const [answerMap, setAnswerMap] = useState>(); const [answerValidationMap, SetAnswerValidationMap] = useState>(); + + useEffect(() => { + const newAnswerMap: Map = new Map(); + const newAnswerValidationMap: Map = new Map(); + questionList?.forEach((section) => { + section.questions.forEach((question) => { + const answer = answerMap?.get(question.questionId); + newAnswerMap.set(question.questionId, { + questionId: question.questionId, + selectedOptionIds: question.questionType === 'CHECKBOX' ? (answer?.selectedOptionIds ?? []) : null, + text: question.questionType === 'TEXT' ? (answer?.text ?? '') : null, + }); + newAnswerValidationMap.set( + question.questionId, + answerValidationMap?.get(question.questionId) ?? !question.required, + ); + }); + }); + setAnswerMap(newAnswerMap); + SetAnswerValidationMap(newAnswerValidationMap); + }, [questionList]); + const [isAbleNextStep, setIsAbleNextStep] = useState(false); const isCategoryAnswer = (answer: ReviewWritingAnswer) => @@ -38,9 +60,8 @@ const useReviewerAnswer = ({ currentCardIndex, questionList, updatedSelectedCate return questionList[currentCardIndex].questions.every((question) => { const { questionId, required } = question; const answerValidation = answerValidationMap?.get(questionId); - const answer = answerMap?.get(questionId); - if (!required && !answer) return true; + if (!required && answerValidation) return true; return !!answerValidation; }); };