Kaynağa Gözat

fixed questions crud in setsdetail page and login loop

mahyar 5 yıl önce
ebeveyn
işleme
ae3c12a814

+ 1 - 1
src/components/login/login.js

@@ -19,7 +19,7 @@ export default function Login(props) {
             })
             .then((response) => {
                 dispatch({ type: USER_LOGGED_IN, payload: response })
-                userRole()
+                setTimeout( () => userRole(), 300)
             } )
             .catch( e => error( e.message ? e.message : undefined ) )
         }

+ 38 - 5
src/components/sets/setsDetails.js

@@ -39,10 +39,13 @@ const QuestionItemDescription = (props) => (
                     } key={k}
                 >
                     <div className="d-flex justify-content-between">
-                        <p> گزینه 1) {i.ans1}</p>
-                        <p> گزینه 2) {i.ans2}</p>
-                        <p> گزینه 3) {i.ans3}</p>
-                        <p> گزینه 4) {i.ans4}</p>
+                        {
+                            i.data.cases.map( (answer, index) => (
+                                <p> 
+                                    گزینه {index+1}) {answer.value}
+                                </p>
+                            ))
+                        }
                     </div>
                 </Panel>)
             )
@@ -132,12 +135,42 @@ const QuestionCreateForm = (props) => {
     React.useEffect( () => {
         if(props.editQuestion !== null){
             setIsEdditing(true)
-            form.setFieldsValue(props.editQuestion)
+            let questionObj = {
+                question: props.editQuestion.question,
+                answer_index: props?.editQuestion?.answer_index,
+                ans1: props.editQuestion?.data?.cases?.filter( item => item.index === 0 )[0].value,
+                ans2: props.editQuestion?.data?.cases?.filter( item => item.index === 1 )[0].value,
+                ans3: props.editQuestion?.data?.cases?.filter( item => item.index === 2 )[0].value,
+                ans4: props.editQuestion?.data?.cases?.filter( item => item.index === 3 )[0].value,
+            }
+            form.setFieldsValue(questionObj)
         }
     },[props.editQuestion])
 
     const onFinish = (values) =>{
         values["test_set"] = props.setId
+        values["type"] = "MULTIPLE-CHOICES"
+        values["data"] = {
+            cases: [
+                {
+                    "index": 0,
+                    "value": values.ans1
+                },
+                {
+                    "index": 1,
+                    "value": values.ans2
+                },
+                {
+                    "index": 2,
+                    "value": values.ans3
+                },
+                {
+                    "index": 3,
+                    "value": values.ans4
+                }
+            ],
+            "number_of_cases": 4
+        }
         if (isEdditing){
             editQuestion(values)
         }else{

+ 2 - 2
src/utils/common.js

@@ -25,7 +25,7 @@ export function fetcher(url = Url("/url-not-filled", {}), header = {}, extra = {
             if (e.status === 401){
 
                 removeToken();
-                window.location = "/#/login";
+                window.location = "/login";
             }
             return Promise.reject(e)
         })
@@ -40,7 +40,7 @@ export function fetcherFile(url = Url("/url-not-filled", {}), header = {}, extra
             if (e.status === 401){
 
                 removeToken();
-                window.location = "/#/login";
+                window.location = "/login";
             }
             return Promise.reject(e)
         })