add validation question
This commit is contained in:
parent
458319b49f
commit
251359e935
|
|
@ -35,7 +35,6 @@ const AddPage: React.FC = () => {
|
||||||
const handleSubmit = ( values: any) => {
|
const handleSubmit = ( values: any) => {
|
||||||
const DataToSend = structuredClone(values);
|
const DataToSend = structuredClone(values);
|
||||||
setTagsSearch(null);
|
setTagsSearch(null);
|
||||||
console.log(1);
|
|
||||||
|
|
||||||
const canAnswersBeShuffled = DataToSend?.canAnswersBeShuffled ? 1 : 0;
|
const canAnswersBeShuffled = DataToSend?.canAnswersBeShuffled ? 1 : 0;
|
||||||
|
|
||||||
|
|
@ -64,12 +63,7 @@ const AddPage: React.FC = () => {
|
||||||
...item,
|
...item,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
console.log(answers);
|
|
||||||
if (answers?.length > 0) {
|
|
||||||
const isValidAnswers = answers?.some(
|
|
||||||
(answer: any) => answer?.isCorrect === 1,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
mutate({
|
mutate({
|
||||||
...item,
|
...item,
|
||||||
parent_id: newBseQuestionId,
|
parent_id: newBseQuestionId,
|
||||||
|
|
@ -82,8 +76,6 @@ const AddPage: React.FC = () => {
|
||||||
console.log(newBseQuestionId, "newBseQuestionId");
|
console.log(newBseQuestionId, "newBseQuestionId");
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
console.log(1);
|
|
||||||
|
|
||||||
const tags = processTags(DataToSend);
|
const tags = processTags(DataToSend);
|
||||||
const answers = values?.answers?.map((item: any, index: number) => {
|
const answers = values?.answers?.map((item: any, index: number) => {
|
||||||
return {
|
return {
|
||||||
|
|
@ -112,6 +104,8 @@ const AddPage: React.FC = () => {
|
||||||
const handleValidateSingleQuestion = (values:any)=>{
|
const handleValidateSingleQuestion = (values:any)=>{
|
||||||
const haveMoreThanOneAnswer = values?.answers?.length > 1;
|
const haveMoreThanOneAnswer = values?.answers?.length > 1;
|
||||||
const haveOneAnswerRight = haveMoreThanOneAnswer && values?.answers?.some((item:any)=> item?.isCorrect === 1 || item.isCorrect === true )
|
const haveOneAnswerRight = haveMoreThanOneAnswer && values?.answers?.some((item:any)=> item?.isCorrect === 1 || item.isCorrect === true )
|
||||||
|
const haveImageOrContent = haveOneAnswerRight && values?.answers?.some((item:any)=> !(item?.content) && !(item.content_image) )
|
||||||
|
|
||||||
if(!haveMoreThanOneAnswer){
|
if(!haveMoreThanOneAnswer){
|
||||||
toast.error(t("validation.it_should_have_more_than_one_answers")) ;
|
toast.error(t("validation.it_should_have_more_than_one_answers")) ;
|
||||||
return false ;
|
return false ;
|
||||||
|
|
@ -120,6 +114,10 @@ const AddPage: React.FC = () => {
|
||||||
toast.error(t("validation.it_should_have_more_than_one_correct_answers")) ;
|
toast.error(t("validation.it_should_have_more_than_one_correct_answers")) ;
|
||||||
return false ;
|
return false ;
|
||||||
}
|
}
|
||||||
|
if(haveImageOrContent){
|
||||||
|
toast.error("validation.one_of_image_and_content_should_be_enter")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -128,8 +126,8 @@ const AddPage: React.FC = () => {
|
||||||
const answers = Question?.answers;
|
const answers = Question?.answers;
|
||||||
const haveAnswers = answers?.length > 0;
|
const haveAnswers = answers?.length > 0;
|
||||||
const haveMoreThanOneAnswer = haveAnswers && answers?.length > 1;
|
const haveMoreThanOneAnswer = haveAnswers && answers?.length > 1;
|
||||||
const haveOneAnswerRight =
|
const haveOneAnswerRight = haveMoreThanOneAnswer && answers?.some((item: any) => item?.isCorrect === 1 || item.isCorrect === true);
|
||||||
haveMoreThanOneAnswer && answers?.some((item: any) => item?.isCorrect === 1 || item.isCorrect === true);
|
const haveImageOrContent = haveOneAnswerRight && values?.answers?.some((item:any)=> !(item?.content) && !(item.content_image) )
|
||||||
|
|
||||||
if (!haveAnswers) {
|
if (!haveAnswers) {
|
||||||
toast.error(t("validation.it_should_have_more_than_one_answers"));
|
toast.error(t("validation.it_should_have_more_than_one_answers"));
|
||||||
|
|
@ -146,6 +144,11 @@ const AddPage: React.FC = () => {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(haveImageOrContent){
|
||||||
|
toast.error("validation.one_of_image_and_content_should_be_enter")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,10 @@ export const getValidationSchema = () => {
|
||||||
// validate input
|
// validate input
|
||||||
return Yup.object().shape({
|
return Yup.object().shape({
|
||||||
content_image: Yup.string().nullable(),
|
content_image: Yup.string().nullable(),
|
||||||
content: Yup.string().required("validation.required"),
|
content: Yup.string().required("validation.required").nullable(),
|
||||||
answers: Yup.array().of(
|
answers: Yup.array().of(
|
||||||
Yup.object().shape({
|
Yup.object().shape({
|
||||||
content: Yup.string().required("validation.required"),
|
content: Yup.string().nullable(),
|
||||||
content_image: Yup.string().nullable(),
|
content_image: Yup.string().nullable(),
|
||||||
isCorrect: Yup.boolean(),
|
isCorrect: Yup.boolean(),
|
||||||
}),
|
}),
|
||||||
|
|
@ -36,10 +36,12 @@ export const getValidationSchema = () => {
|
||||||
"at-least-one-correct",
|
"at-least-one-correct",
|
||||||
"At least one answer must be correct",
|
"At least one answer must be correct",
|
||||||
(answers: any) => {
|
(answers: any) => {
|
||||||
return answers?.some(
|
|
||||||
(answer: any) =>
|
const hasCorrectAnswer = answers?.some((answer:any) => answer?.isCorrect === true || answer?.isCorrect === 1);
|
||||||
answer?.isCorrect === true || answer?.isCorrect === 1,
|
|
||||||
);
|
const haveImageOrContent = answers?.some((item:any)=> !(item?.content) && !(item.content_image));
|
||||||
|
|
||||||
|
return hasCorrectAnswer && !haveImageOrContent ;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
@ -107,10 +109,11 @@ export const getValidationSchemaBase = () => {
|
||||||
"At least one answer must be correct",
|
"At least one answer must be correct",
|
||||||
(answers: any) => {
|
(answers: any) => {
|
||||||
|
|
||||||
return answers.some(
|
const hasCorrectAnswer = answers?.some((answer:any) => answer?.isCorrect === true || answer?.isCorrect === 1);
|
||||||
(answer: any) =>
|
|
||||||
answer.isCorrect === true || answer.isCorrect === 1,
|
const haveImageOrContent = answers?.some((item:any)=> !(item?.content) && !(item.content_image));
|
||||||
);
|
|
||||||
|
return hasCorrectAnswer && !haveImageOrContent ;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
}),
|
}),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user