From cffd0b8319aad8182aa1eb51caa51cff9cf17434 Mon Sep 17 00:00:00 2001 From: badahertz52 Date: Tue, 13 Aug 2024 15:36:22 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix=20:=20answerMap,=20answerValidationMap?= =?UTF-8?q?=20=EC=9D=98=20=EA=B8=B0=EB=B3=B8=EA=B0=92=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../writingCardForm/useReviewerAnswer.ts | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts b/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts index 8f760af6e..18c15dca4 100644 --- a/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts +++ b/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts @@ -11,6 +11,24 @@ 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, !question.required); + }); + }); + setAnswerMap(newAnswerMap); + }, [questionList]); + const [isAbleNextStep, setIsAbleNextStep] = useState(false); const isCategoryAnswer = (answer: ReviewWritingAnswer) => @@ -38,9 +56,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) return true; return !!answerValidation; }); }; From 9e47c7edd09354340adaf865511d5d6d31324c3d Mon Sep 17 00:00:00 2001 From: badahertz52 Date: Tue, 13 Aug 2024 15:50:37 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=ED=95=84=EC=88=98=20=EC=95=84?= =?UTF-8?q?=EB=8B=8C=20=EB=8B=B5=EB=B3=80=EC=97=90=EC=84=9C=20=EB=AC=B8?= =?UTF-8?q?=EC=9E=90=20=EA=B0=9C=EC=88=98=20=EC=9C=A0=ED=9A=A8=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EA=B2=8C=20=EB=90=A0=20=EB=95=8C=20?= =?UTF-8?q?=EB=B2=84=ED=8A=BC=20=EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/hooks/review/writingCardForm/useReviewerAnswer.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts b/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts index 18c15dca4..b43595b39 100644 --- a/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts +++ b/frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts @@ -23,10 +23,14 @@ const useReviewerAnswer = ({ currentCardIndex, questionList, updatedSelectedCate selectedOptionIds: question.questionType === 'CHECKBOX' ? (answer?.selectedOptionIds ?? []) : null, text: question.questionType === 'TEXT' ? (answer?.text ?? '') : null, }); - newAnswerValidationMap.set(question.questionId, !question.required); + newAnswerValidationMap.set( + question.questionId, + answerValidationMap?.get(question.questionId) ?? !question.required, + ); }); }); setAnswerMap(newAnswerMap); + SetAnswerValidationMap(newAnswerValidationMap); }, [questionList]); const [isAbleNextStep, setIsAbleNextStep] = useState(false); @@ -57,7 +61,7 @@ const useReviewerAnswer = ({ currentCardIndex, questionList, updatedSelectedCate const { questionId, required } = question; const answerValidation = answerValidationMap?.get(questionId); - if (!required) return true; + if (!required && answerValidation) return true; return !!answerValidation; }); };