fix tag
This commit is contained in:
parent
1d39a4cd4f
commit
32f87910ea
|
|
@ -27,6 +27,7 @@ const ImageBoxField = ({ name }: any) => {
|
||||||
|
|
||||||
const handleFileChange = (event: any) => {
|
const handleFileChange = (event: any) => {
|
||||||
const file = event.target.files[0];
|
const file = event.target.files[0];
|
||||||
|
|
||||||
if (file) {
|
if (file) {
|
||||||
const maxSize = 2 * 1024 * 1024;
|
const maxSize = 2 * 1024 * 1024;
|
||||||
|
|
||||||
|
|
@ -42,6 +43,8 @@ const ImageBoxField = ({ name }: any) => {
|
||||||
|
|
||||||
if (file) {
|
if (file) {
|
||||||
generateImagePreview(file, setImagePreview);
|
generateImagePreview(file, setImagePreview);
|
||||||
|
console.log(file,"file");
|
||||||
|
|
||||||
formik.setFieldValue(name, file);
|
formik.setFieldValue(name, file);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -55,7 +58,7 @@ const ImageBoxField = ({ name }: any) => {
|
||||||
|
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
setImagePreview("");
|
setImagePreview("");
|
||||||
formik.setFieldValue(name, "");
|
formik.setFieldValue(name, null);
|
||||||
|
|
||||||
if (fileInputRef.current) {
|
if (fileInputRef.current) {
|
||||||
fileInputRef.current.value = "";
|
fileInputRef.current.value = "";
|
||||||
|
|
|
||||||
|
|
@ -9,20 +9,27 @@ const SelectTag: React.FC = () => {
|
||||||
const [searchValue, setSearchValue] = useState<string>("");
|
const [searchValue, setSearchValue] = useState<string>("");
|
||||||
|
|
||||||
const [fieldValue, setFieldValue] = useState<string>("");
|
const [fieldValue, setFieldValue] = useState<string>("");
|
||||||
|
const [NewAdditionalData, setNewAdditionalData] = useState({})
|
||||||
const formik = useFormikContext<any>();
|
const formik = useFormikContext<any>();
|
||||||
const handleChange = (value: string[]) => {
|
const handleChange = (value: any,option:any) => {
|
||||||
console.log(value);
|
const newSelectedOption = option?.pop()
|
||||||
|
const newObject = {
|
||||||
|
id:newSelectedOption?.id,
|
||||||
|
name:newSelectedOption?.name
|
||||||
|
}
|
||||||
|
setNewAdditionalData(newObject)
|
||||||
formik.setFieldValue("tags", value);
|
formik.setFieldValue("tags", value);
|
||||||
setSearchValue("");
|
setSearchValue("");
|
||||||
setFieldValue("");
|
setFieldValue("");
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleSearch = useDebounce((value: string) => {
|
const handleSearch = useDebounce((value: string) => {
|
||||||
|
|
||||||
setSearchValue(value);
|
setSearchValue(value);
|
||||||
});
|
});
|
||||||
|
|
||||||
const handleFieldChange = (value: string) => {
|
const handleFieldChange = (value: string) => {
|
||||||
|
|
||||||
setFieldValue(value);
|
setFieldValue(value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -46,7 +53,7 @@ const SelectTag: React.FC = () => {
|
||||||
const value =
|
const value =
|
||||||
formik?.values?.tags?.map((item: any) => item?.id ?? item) ?? [];
|
formik?.values?.tags?.map((item: any) => item?.id ?? item) ?? [];
|
||||||
|
|
||||||
const AllOptions = [...options, ...additionalData];
|
const AllOptions = [...options, ...additionalData,NewAdditionalData];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="SelectTag">
|
<div className="SelectTag">
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,22 @@ const Header = () => {
|
||||||
const { values, setFieldValue, setValues } = useFormikContext<any>();
|
const { values, setFieldValue, setValues } = useFormikContext<any>();
|
||||||
const { isBseQuestion, setIsBseQuestion } = useObjectToEdit();
|
const { isBseQuestion, setIsBseQuestion } = useObjectToEdit();
|
||||||
const { setSavedQuestionData } = useObjectToEdit();
|
const { setSavedQuestionData } = useObjectToEdit();
|
||||||
|
console.log(values,"values");
|
||||||
|
|
||||||
|
|
||||||
|
const isEdited = ()=>{
|
||||||
|
|
||||||
|
if(isBseQuestion || values?.isBase === 1){
|
||||||
|
|
||||||
|
}else{
|
||||||
|
const content = !!values?.content ;
|
||||||
|
const content_image = !!values?.content_image ;
|
||||||
|
const hint = !values?.hint ;
|
||||||
|
const answers = !values?.answers ;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const handleChange = () => {
|
const handleChange = () => {
|
||||||
setSavedQuestionData(null);
|
setSavedQuestionData(null);
|
||||||
localStorage.removeItem(QUESTION_OBJECT_KEY);
|
localStorage.removeItem(QUESTION_OBJECT_KEY);
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,7 @@ const AddPage: React.FC = () => {
|
||||||
return false ;
|
return false ;
|
||||||
}
|
}
|
||||||
if(haveImageOrContent){
|
if(haveImageOrContent){
|
||||||
toast.error("validation.one_of_image_and_content_should_be_enter")
|
toast.error(t("validation.one_of_image_and_content_should_be_enter"))
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -127,8 +127,9 @@ const AddPage: React.FC = () => {
|
||||||
const haveAnswers = answers?.length > 0;
|
const haveAnswers = answers?.length > 0;
|
||||||
const haveMoreThanOneAnswer = haveAnswers && answers?.length > 1;
|
const haveMoreThanOneAnswer = haveAnswers && answers?.length > 1;
|
||||||
const haveOneAnswerRight = haveMoreThanOneAnswer && answers?.some((item: any) => item?.isCorrect === 1 || item.isCorrect === true);
|
const haveOneAnswerRight = haveMoreThanOneAnswer && answers?.some((item: any) => item?.isCorrect === 1 || item.isCorrect === true);
|
||||||
const haveImageOrContent = haveOneAnswerRight && values?.answers?.some((item:any)=> !(item?.content) && !(item.content_image) )
|
const haveImageOrContent = haveOneAnswerRight && answers?.some((item:any)=> !(item?.content) && !(item.content_image) )
|
||||||
|
console.log(haveImageOrContent,"haveImageOrContent");
|
||||||
|
|
||||||
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"));
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -145,7 +146,7 @@ const AddPage: React.FC = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(haveImageOrContent){
|
if(haveImageOrContent){
|
||||||
toast.error("validation.one_of_image_and_content_should_be_enter")
|
toast.error(t("validation.one_of_image_and_content_should_be_enter"))
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,8 @@ const EditPage: React.FC = () => {
|
||||||
if (item?.id) {
|
if (item?.id) {
|
||||||
const itemToSend = structuredClone(item);
|
const itemToSend = structuredClone(item);
|
||||||
const keysToRemove = ["content_image"];
|
const keysToRemove = ["content_image"];
|
||||||
|
console.log(itemToSend,"itemToSend");
|
||||||
|
|
||||||
const updatedObject = removeStringKeys(itemToSend, keysToRemove);
|
const updatedObject = removeStringKeys(itemToSend, keysToRemove);
|
||||||
console.log(updatedObject, "updatedObject");
|
console.log(updatedObject, "updatedObject");
|
||||||
|
|
||||||
|
|
@ -96,16 +98,6 @@ const EditPage: React.FC = () => {
|
||||||
const oldAnswers = [] as any;
|
const oldAnswers = [] as any;
|
||||||
const newAnswers = [] as any;
|
const newAnswers = [] as any;
|
||||||
|
|
||||||
if (updatedObject?.answers?.length > 0) {
|
|
||||||
const isValidAnswers = updatedObject?.answers?.some(
|
|
||||||
(answer: any) => answer?.isCorrect === 1,
|
|
||||||
);
|
|
||||||
|
|
||||||
// if(!isValidAnswers){
|
|
||||||
// toast.error(t("validation.at_least_one_answer_should_be_correct"));
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
updatedObject?.answers?.forEach((item: any) => {
|
updatedObject?.answers?.forEach((item: any) => {
|
||||||
if (item?.id) {
|
if (item?.id) {
|
||||||
oldAnswers.push({ ...item, isCorrect: item?.isCorrect ? 1 : 0 });
|
oldAnswers.push({ ...item, isCorrect: item?.isCorrect ? 1 : 0 });
|
||||||
|
|
@ -149,19 +141,17 @@ const EditPage: React.FC = () => {
|
||||||
|
|
||||||
const oldAnswers = [] as any;
|
const oldAnswers = [] as any;
|
||||||
const newAnswers = [] as any;
|
const newAnswers = [] as any;
|
||||||
if (updatedObject?.answers?.length > 0) {
|
|
||||||
// const isValidAnswers = updatedObject?.answers?.some((answer:any) => answer?.isCorrect === 1 || answer?.isCorrect === true)
|
|
||||||
// const isValidAnswers2 = updatedObject?.answers?.filter((answer: any) => answer?.isCorrect === 1 || answer?.isCorrect === true ).length > 1;
|
|
||||||
// console.log(isValidAnswers2);
|
|
||||||
// console.log(isValidAnswers,"isValidAnswers");
|
|
||||||
// if(!isValidAnswers || isValidAnswers2){
|
|
||||||
// toast.error(t("validation.at_least_one_answer_should_be_correct"));
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
updatedObject?.answers?.forEach((item: any) => {
|
updatedObject?.answers?.forEach((item: any) => {
|
||||||
if (item?.id) {
|
if (item?.id) {
|
||||||
oldAnswers.push({ ...item, isCorrect: item?.isCorrect ? 1 : 0 });
|
console.log(item,"item");
|
||||||
|
const deletedImage = item?.content_image === null
|
||||||
|
if(deletedImage){
|
||||||
|
oldAnswers.push({ ...item, isCorrect: item?.isCorrect ? 1 : 0, content_image:"" });
|
||||||
|
|
||||||
|
}else{
|
||||||
|
oldAnswers.push({ ...item, isCorrect: item?.isCorrect ? 1 : 0 });
|
||||||
|
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
newAnswers.push({ ...item, isCorrect: item?.isCorrect ? 1 : 0 });
|
newAnswers.push({ ...item, isCorrect: item?.isCorrect ? 1 : 0 });
|
||||||
}
|
}
|
||||||
|
|
@ -181,7 +171,6 @@ const EditPage: React.FC = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
|
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
navigate(-1);
|
navigate(-1);
|
||||||
|
|
@ -191,6 +180,7 @@ const EditPage: 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")) ;
|
||||||
|
|
@ -200,6 +190,10 @@ const EditPage: 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(t("validation.one_of_image_and_content_should_be_enter"))
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -210,6 +204,7 @@ const handleValidateBaseQuestion = (values: any) => {
|
||||||
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 && 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"));
|
||||||
|
|
@ -226,6 +221,12 @@ const handleValidateBaseQuestion = (values: any) => {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(haveImageOrContent){
|
||||||
|
toast.error(t("validation.one_of_image_and_content_should_be_enter"))
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,16 @@ const ChoiceFields = ({ index, data }: { index: number; data: Choice }) => {
|
||||||
formik.setFieldValue("answers", updatedAnswers);
|
formik.setFieldValue("answers", updatedAnswers);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const values = formik?.values?.answers?.[index] ;
|
||||||
|
const handelCanDeleteAnswers = ()=>{
|
||||||
|
const content = values?.content ;
|
||||||
|
const content_image = values?.content_image ;
|
||||||
|
if(!content && !content_image ){
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="ChoiceFields">
|
<div className="ChoiceFields">
|
||||||
|
|
@ -52,26 +62,38 @@ const ChoiceFields = ({ index, data }: { index: number; data: Choice }) => {
|
||||||
name={index}
|
name={index}
|
||||||
type="Checkbox"
|
type="Checkbox"
|
||||||
/>
|
/>
|
||||||
|
{handelCanDeleteAnswers() ?
|
||||||
|
<p className="delete_question_options" onClick={()=>{handleDeleteChoice()}}>
|
||||||
|
{t("header.delete_choice")}
|
||||||
|
<GoTrash
|
||||||
|
className="trash_icon"
|
||||||
|
|
||||||
|
size={17}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
:
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
title={t("header.this_will_un_do_all_your_changes")}
|
title={t("header.this_will_un_do_all_your_changes")}
|
||||||
okText={t("practical.yes")}
|
okText={t("practical.yes")}
|
||||||
cancelText={t("practical.no")}
|
cancelText={t("practical.no")}
|
||||||
onConfirm={()=>{handleDeleteChoice()}}
|
onConfirm={()=>{handleDeleteChoice()}}
|
||||||
defaultOpen={false}
|
defaultOpen={false}
|
||||||
|
|
||||||
>
|
|
||||||
<p className="delete_question_options">
|
|
||||||
{t("header.delete_choice")}
|
|
||||||
<GoTrash
|
|
||||||
className="trash_icon"
|
|
||||||
|
|
||||||
size={17}
|
|
||||||
/>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
>
|
||||||
</Popconfirm>
|
<p className="delete_question_options">
|
||||||
|
{t("header.delete_choice")}
|
||||||
|
<GoTrash
|
||||||
|
className="trash_icon"
|
||||||
|
|
||||||
|
size={17}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
</Popconfirm>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,19 @@ const ChoiceFields = ({
|
||||||
formik.setFieldValue(`Questions[${parent_index}].answers`, updatedAnswers);
|
formik.setFieldValue(`Questions[${parent_index}].answers`, updatedAnswers);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const values = formik.values.Questions?.[parent_index]?.answers?.[index] ;
|
||||||
|
console.log(values,"values");
|
||||||
|
|
||||||
|
const handelCanDeleteAnswers = ()=>{
|
||||||
|
const content = values?.content ;
|
||||||
|
const content_image = values?.content_image ;
|
||||||
|
if(!content && !content_image ){
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="ChoiceFields">
|
<div className="ChoiceFields">
|
||||||
|
|
@ -71,7 +84,19 @@ const ChoiceFields = ({
|
||||||
parent_index={parent_index}
|
parent_index={parent_index}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Popconfirm
|
|
||||||
|
{handelCanDeleteAnswers() ?
|
||||||
|
<p className="delete_question_options" onClick={()=>{handleDeleteChoice()}} >
|
||||||
|
{t("header.delete_choice")}
|
||||||
|
<GoTrash
|
||||||
|
className="trash_icon"
|
||||||
|
|
||||||
|
size={17}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
:
|
||||||
|
|
||||||
|
<Popconfirm
|
||||||
title={t("header.this_will_un_do_all_your_changes")}
|
title={t("header.this_will_un_do_all_your_changes")}
|
||||||
okText={t("practical.yes")}
|
okText={t("practical.yes")}
|
||||||
cancelText={t("practical.no")}
|
cancelText={t("practical.no")}
|
||||||
|
|
@ -89,6 +114,10 @@ const ChoiceFields = ({
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</Popconfirm>
|
</Popconfirm>
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,11 @@ const Form = () => {
|
||||||
}
|
}
|
||||||
}, [Success]);
|
}, [Success]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Row className="w-100 exercise_form_container">
|
<Row className="w-100 exercise_form_container">
|
||||||
<div className="exercise_form">
|
<div className="exercise_form">
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,22 @@ const QuestionFIeld = ({ index, data }: { index: number; data: Choice }) => {
|
||||||
formik.setFieldValue(`Questions`, updatedAnswers);
|
formik.setFieldValue(`Questions`, updatedAnswers);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const values = formik.values.Questions?.[index] ;
|
||||||
|
console.log(values,"values");
|
||||||
|
|
||||||
|
const handelCanDeleteAnswers = ()=>{
|
||||||
|
const content = values?.content ;
|
||||||
|
const content_image = values?.content_image ;
|
||||||
|
if(!content && !content_image ){
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="exercise_forms">
|
<div className="exercise_forms">
|
||||||
|
|
@ -48,7 +64,22 @@ const QuestionFIeld = ({ index, data }: { index: number; data: Choice }) => {
|
||||||
|
|
||||||
<ImageBoxField name={`Questions.${index}.content_image`} />
|
<ImageBoxField name={`Questions.${index}.content_image`} />
|
||||||
|
|
||||||
<div className="answer_status" >
|
{handelCanDeleteAnswers() ?
|
||||||
|
<div className="answer_status" >
|
||||||
|
<p className="delete_question_options" onClick={()=>{handleDeleteQuestion()}}>
|
||||||
|
{t("header.delete_question")}
|
||||||
|
<GoTrash
|
||||||
|
className="trash_icon"
|
||||||
|
|
||||||
|
size={17}
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
:
|
||||||
|
|
||||||
|
<div className="answer_status" >
|
||||||
|
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
title={t("header.this_will_un_do_all_your_changes")}
|
title={t("header.this_will_un_do_all_your_changes")}
|
||||||
okText={t("practical.yes")}
|
okText={t("practical.yes")}
|
||||||
|
|
@ -68,6 +99,9 @@ const QuestionFIeld = ({ index, data }: { index: number; data: Choice }) => {
|
||||||
</Popconfirm>
|
</Popconfirm>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import useFilter from "../../Components/FilterField/components/useFilter";
|
import useFilter from "../../Components/FilterField/components/useFilter";
|
||||||
|
import { Select } from "antd";
|
||||||
|
|
||||||
const Dummy = () => {
|
const Dummy = () => {
|
||||||
const [t] = useTranslation();
|
const [t] = useTranslation();
|
||||||
|
|
@ -12,8 +13,11 @@ const Dummy = () => {
|
||||||
<FilterBody>
|
<FilterBody>
|
||||||
karim
|
karim
|
||||||
</FilterBody>
|
</FilterBody>
|
||||||
|
<Select
|
||||||
karim2
|
style={{width:"200px"}}
|
||||||
|
showSearch
|
||||||
|
/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -96,15 +96,3 @@
|
||||||
.model_sub_children{
|
.model_sub_children{
|
||||||
padding-bottom: 30px;
|
padding-bottom: 30px;
|
||||||
}
|
}
|
||||||
.ant-select-selection-search{
|
|
||||||
color: #6A7287 !important;
|
|
||||||
display: none !important;
|
|
||||||
|
|
||||||
}
|
|
||||||
:where(.css-dev-only-do-not-override-oad6qy).ant-select-single.ant-select-lg .ant-select-selector .ant-select-selection-search{
|
|
||||||
input{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
:where(.css-dev-only-do-not-override-oad6qy).ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{
|
|
||||||
}
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
@import "./Layout.scss";
|
@import "./Layout.scss";
|
||||||
@import "./SideBar.scss";
|
@import "./SideBar.scss";
|
||||||
@import "./DataTable.scss";
|
@import "./DataTable.scss";
|
||||||
|
|
||||||
@import "./DataState.scss";
|
@import "./DataState.scss";
|
||||||
@import "./PageHeader.scss";
|
@import "./PageHeader.scss";
|
||||||
@import "./FilterLayout.scss";
|
@import "./FilterLayout.scss";
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,8 @@
|
||||||
"at_least_one_answer_should_be_correct": "يجب أن تكون إجابة واحدة صحيحة",
|
"at_least_one_answer_should_be_correct": "يجب أن تكون إجابة واحدة صحيحة",
|
||||||
"it_should_have_more_than_one_answers": "يجب أن يحتوي على أكثر من إجابة",
|
"it_should_have_more_than_one_answers": "يجب أن يحتوي على أكثر من إجابة",
|
||||||
"it_should_have_more_than_one_correct_answers": "يجب أن يحتوي على إجابة صحيحة",
|
"it_should_have_more_than_one_correct_answers": "يجب أن يحتوي على إجابة صحيحة",
|
||||||
"File_size_exceeds_2_MB_limit.":"حجم الملف يتجاوز الحد الأقصى البالغ 2 ميجابايت"
|
"File_size_exceeds_2_MB_limit.":"حجم الملف يتجاوز الحد الأقصى البالغ 2 ميجابايت",
|
||||||
|
"one_of_image_and_content_should_be_enter":"يجب إدخال صورة أو محتوى واحد على الأقل"
|
||||||
},
|
},
|
||||||
"header": {
|
"header": {
|
||||||
"register_students": "تسجيل الطلاب",
|
"register_students": "تسجيل الطلاب",
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ export function removeStringKeys(obj: any, keysToRemove: string[]): any {
|
||||||
// Check if the value is a string or "null" and the key is in keysToRemove
|
// Check if the value is a string or "null" and the key is in keysToRemove
|
||||||
if (
|
if (
|
||||||
keysToRemove.includes(key) &&
|
keysToRemove.includes(key) &&
|
||||||
(typeof value === "string" || value === "null")
|
(typeof value === "string")
|
||||||
) {
|
) {
|
||||||
delete obj[key];
|
delete obj[key];
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user