From 9f05382d6cc1d9a75debc7856c5c7abd6e5664e0 Mon Sep 17 00:00:00 2001 From: karimaldeen Date: Wed, 9 Oct 2024 16:27:26 +0300 Subject: [PATCH] fix --- src/Components/LatextInput/LaTeXInputMemo.tsx | 5 ++--- src/Pages/Admin/question/Model/ValidationFn.ts | 6 ++++-- src/Pages/Admin/question/formUtil.ts | 14 ++++++++------ src/utils/hasDuplicateArrayValue.ts | 2 +- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/Components/LatextInput/LaTeXInputMemo.tsx b/src/Components/LatextInput/LaTeXInputMemo.tsx index 2a4592c..c041671 100644 --- a/src/Components/LatextInput/LaTeXInputMemo.tsx +++ b/src/Components/LatextInput/LaTeXInputMemo.tsx @@ -75,10 +75,9 @@ const LaTeXInputMemo: React.FC = React.memo(({ field ,form, label, ...prop console.log(values); let metaName = name.substring(0, name.lastIndexOf('.')); - if (metaName.includes('.')) { metaName += ".meta";} else {metaName += "meta"} - console.log(metaName); + if (metaName.includes('.') || metaName.includes('[')) { metaName += ".meta";} else {metaName += "meta"} const meta = getFieldProps(metaName).value ; - console.log(meta); + console.log(metaName,meta); const direction = meta?.direction === "ltr" ? "ltr" : "rtl" const [Dir, setDir] = useState<"ltr" | "rtl">(direction) diff --git a/src/Pages/Admin/question/Model/ValidationFn.ts b/src/Pages/Admin/question/Model/ValidationFn.ts index c40a976..711862d 100644 --- a/src/Pages/Admin/question/Model/ValidationFn.ts +++ b/src/Pages/Admin/question/Model/ValidationFn.ts @@ -7,7 +7,8 @@ export const handleValidateSingleQuestion = (values:any,isValid:boolean,handleSu const haveImageOrContent = haveOneAnswerRight && values?.answers?.some((item:any)=> !(item?.content) && !(item.content_image) ) const haveDuplicatedContent = hasDuplicateArrayValue(values?.answers,"content") - + console.log("karim","karim"); + const content = values.content ; const content_image = values.content_image ; const haveContentOrContentImage = !!content || !!content_image ; @@ -45,7 +46,8 @@ export const handleValidateBaseQuestion = (values: any,isValid:boolean,handleSub const content_image = values.content_image ; const haveContentOrContentImage = !!content || !!content_image ; const haveDuplicatedContent = hasDuplicateArrayValue(values?.Questions,"content") - + console.log(1); + if(!haveContentOrContentImage){ toast.error(`${t("validation.one_of_image_and_content_should_be_enter_in_question")}`); return false; diff --git a/src/Pages/Admin/question/formUtil.ts b/src/Pages/Admin/question/formUtil.ts index 82660ce..a3dd2e1 100644 --- a/src/Pages/Admin/question/formUtil.ts +++ b/src/Pages/Admin/question/formUtil.ts @@ -19,7 +19,7 @@ export const getInitialValues = (objectToEdit: Question): any => { parent_id: objectToEdit?.parent_id ?? "", answers: objectToEdit?.answers ?? null, tags: tags ?? [], - meta : objectToEdit?.meta ?? { direction : "rtl" } + meta : objectToEdit?.meta }; }; @@ -78,21 +78,23 @@ export const getInitialValuesBase = (objectToEdit: Question): any => { } }) + console.log(objectToEdit?.meta ); return { ...item, answer:newAnswers, - canAnswersBeShuffled: objectToEdit?.canAnswersBeShuffled ? 1 : 0, - hint: objectToEdit?.hint ?? "", + hint: item?.hint ?? "", + canAnswersBeShuffled:0, isBase: 0, tags, - meta : objectToEdit?.meta ?? { direction : "rtl" } + meta : item?.meta }; }); const questions = newQuestions ?? [{answers:[]}]; - + console.log(questions?.[0]?.meta,"questions"); + return { id: objectToEdit?.id ?? null, content: objectToEdit?.content ?? null, @@ -103,7 +105,7 @@ export const getInitialValuesBase = (objectToEdit: Question): any => { canAnswersBeShuffled: objectToEdit?.canAnswersBeShuffled ? 1 : 0, hint: objectToEdit?.hint ?? null, Questions: questions, - meta : objectToEdit?.meta ?? { direction : "rtl" } + meta : objectToEdit?.meta }; }; diff --git a/src/utils/hasDuplicateArrayValue.ts b/src/utils/hasDuplicateArrayValue.ts index 72c0484..751ce28 100644 --- a/src/utils/hasDuplicateArrayValue.ts +++ b/src/utils/hasDuplicateArrayValue.ts @@ -11,7 +11,7 @@ export const hasDuplicateArrayValue = (data: T[], key: keyof T): boolean => { for (const item of data) { const value = item[key]; // Accessing the value using the key - if (hashMap.has(value)) { + if (hashMap.has(value) && value !== null ) { return true; // Duplicate found } else { hashMap.set(value, true); // Store the value as a key in the map