--- lib/domain/content-form.ts
+++ lib/domain/content-form.ts
... | ... | @@ -5,7 +5,6 @@ |
| 5 | 5 |
|
| 6 | 6 |
import {
|
| 7 | 7 |
ANSWER_MESSAGE_ETC, |
| 8 |
- ANSWER_MESSAGE_OPTIONS, |
|
| 9 | 8 |
MIN_COMIC_CUTS, |
| 10 | 9 |
QUIZ_LEVEL_OPTIONS, |
| 11 | 10 |
gradesOf, |
... | ... | @@ -235,7 +234,8 @@ |
| 235 | 234 |
export function validateQuizForm( |
| 236 | 235 |
values: QuizFormValues, |
| 237 | 236 |
codes: SchoolGradeOptions, |
| 238 |
- answerOptions: readonly string[] |
|
| 237 |
+ answerOptions: readonly string[], |
|
| 238 |
+ messageOptionsByAnswer: Record<string, readonly CommonCode[]> |
|
| 239 | 239 |
): ValidationResult<QuizFormValues> {
|
| 240 | 240 |
const errors: ContentFormErrors = {};
|
| 241 | 241 |
validateGrades(values, codes, errors); |
... | ... | @@ -264,9 +264,11 @@ |
| 264 | 264 |
|
| 265 | 265 |
// 정답 선택지 줄을 각각 검사한다 — 정답이 아닌 쪽도 보내므로 모두 유효해야 한다. |
| 266 | 266 |
const answerMessages = values.answerMessages.map((message) => {
|
| 267 |
+ const allowedCodes = messageOptionsByAnswer[message.answer] ?? []; |
|
| 267 | 268 |
if ( |
| 268 | 269 |
message.code !== '' && |
| 269 |
- !ANSWER_MESSAGE_OPTIONS.some((option) => option.value === message.code) |
|
| 270 |
+ message.code !== ANSWER_MESSAGE_ETC && |
|
| 271 |
+ !allowedCodes.some((option) => option.code === message.code) |
|
| 270 | 272 |
) {
|
| 271 | 273 |
errors[`answerMessage${message.answer}Code`] =
|
| 272 | 274 |
'노출 문구를 다시 선택해 주세요.'; |
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?