Skip to content

Commit

Permalink
[FE] fix : 필수가 아닌 답변을 작성하려 하지 않았을 경우에 대한 오류 수정 (#342)
Browse files Browse the repository at this point in the history
* fix : answerMap, answerValidationMap 의 기본값 설정

* fix: 필수 아닌 답변에서 문자 개수 유효하지 않게 될 때 버튼 비활성화 오류 수정
  • Loading branch information
BadaHertz52 authored Aug 13, 2024
1 parent 6fa82d3 commit b0ab7d5
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions frontend/src/hooks/review/writingCardForm/useReviewerAnswer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,28 @@ interface UseReviewerAnswerProps {
const useReviewerAnswer = ({ currentCardIndex, questionList, updatedSelectedCategory }: UseReviewerAnswerProps) => {
const [answerMap, setAnswerMap] = useState<Map<number, ReviewWritingAnswer>>();
const [answerValidationMap, SetAnswerValidationMap] = useState<Map<number, boolean>>();

useEffect(() => {
const newAnswerMap: Map<number, ReviewWritingAnswer> = new Map();
const newAnswerValidationMap: Map<number, boolean> = 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) =>
Expand Down Expand Up @@ -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;
});
};
Expand Down

0 comments on commit b0ab7d5

Please sign in to comment.