diff --git a/src/AddQuestion/AddQuestion.jsx b/src/AddQuestion/AddQuestion.jsx index 5058ea2..9f588ce 100644 --- a/src/AddQuestion/AddQuestion.jsx +++ b/src/AddQuestion/AddQuestion.jsx @@ -5,8 +5,10 @@ import './AddQuestion.css'; import { useEffect, useState } from 'react'; import axios from 'axios'; import AlertModal from '../AlertModel/AlertModel'; +import { useNavigate } from 'react-router-dom'; const AddQuestion = () => { + const navigate = useNavigate(); const [isFlex, setIsFlex] = useState(true); const [tags, setTags] = useState([]); const [loading, setLoading] = useState(false); @@ -22,6 +24,7 @@ const AddQuestion = () => { const [marks, setMarks] = useState(''); const [option, setOption] = useState(''); const [mcqOptions, setMcqOptions] = useState([]); + const [mcqAnswer, setMcqAnswer] = useState(''); const [expectedTime, setExpectedTime] = useState({}); const [hours, setHours] = useState(''); const [minutes, setMinutes] = useState(''); @@ -103,9 +106,24 @@ const AddQuestion = () => { return true; }; + const validateAnswer = () => { + if (option === 'mcq') { + const index = mcqOptions.indexOf(mcqAnswer); + if (index === -1) return false; + return true; + } + return true; + }; + const handleSubmit = async (e) => { e.preventDefault(); if (!validateTime()) return; + if (!validateAnswer()) { + setModalMessage('In MCQ type question, answer should be among the options provided!!!'); + setModalIsError(true); + setModalIsOpen(true); + return; + } setLoading(true); const teacherId = localStorage.getItem('teacherId'); try { @@ -117,6 +135,7 @@ const AddQuestion = () => { marks, option, mcqOptions, + mcqAnswer, expectedTime, divTag, }); @@ -357,6 +376,19 @@ const AddQuestion = () => { ) : ( <> )} + +
+
+ { + setMcqAnswer(e.target.value); + }} + required + /> +
+
@@ -430,6 +462,7 @@ const AddQuestion = () => { isOpen={modalIsOpen} onClose={() => { setModalIsOpen(false); + navigate('/questions-upload'); }} isError={modalIsError} message={modalMessage} diff --git a/src/QuestionsUpload/QuestionsUpload.css b/src/QuestionsUpload/QuestionsUpload.css index 15056a1..c21b795 100644 --- a/src/QuestionsUpload/QuestionsUpload.css +++ b/src/QuestionsUpload/QuestionsUpload.css @@ -155,6 +155,9 @@ hr { object-fit: cover; border-radius: 5px; } +.question-upload-answer { + padding-bottom: 10px; +} @media (max-width: 720px) { .question-upload-add-question { font-size: 12px; diff --git a/src/QuestionsUpload/QuestionsUpload.jsx b/src/QuestionsUpload/QuestionsUpload.jsx index 4fcc2d3..b4aec16 100644 --- a/src/QuestionsUpload/QuestionsUpload.jsx +++ b/src/QuestionsUpload/QuestionsUpload.jsx @@ -129,6 +129,7 @@ const QuestionsUpload = () => {
)} +
Answer:  {question.mcqAnswer}
))}