diff --git a/next.config.js b/next.config.js
index a843cbee09afaadbf9c8dd1477dcccf7eb56af50..ca2117bcb0751cd5e7de7d9c08c290f9d0c906f1 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,6 +1,6 @@
 /** @type {import('next').NextConfig} */
 const nextConfig = {
-  reactStrictMode: true,
+  reactStrictMode: false,
 }
 
 module.exports = nextConfig
diff --git a/src/pages/quiz/[id]/pembahasan.tsx b/src/pages/quiz/[id]/pembahasan.tsx
index 734f6ea2269f468ec367f48802f80727a52d72b2..fba2f376dba7c7f7436be33442489b241b0d0bc1 100644
--- a/src/pages/quiz/[id]/pembahasan.tsx
+++ b/src/pages/quiz/[id]/pembahasan.tsx
@@ -24,7 +24,7 @@ function Pembahasan() {
   const [userAnswers, setUserAnswers] = useState<UserAnswer[]>([]);
 
   useEffect(() => {
-    if (!router.query.id || !router.query.userAnswers) {
+    if (!router.isReady) {
       return;
     }
     setUserAnswers(JSON.parse(router.query.userAnswers as string));
@@ -41,7 +41,7 @@ function Pembahasan() {
       .catch((err) => {
         console.log(err.response.data);
       });
-  }, [router.query.id, router.query.userAnswers]);
+  }, [router.isReady, router.query.id, router.query.userAnswers]);
 
   return (
     <Layout>
diff --git a/src/pages/quiz/[id]/result.tsx b/src/pages/quiz/[id]/result.tsx
index 70acbd581c026f6acae0eaaeb5b29a4d4931f57b..a5070f9da1dbd3c7c351ea3bd3414fe9694f57f3 100644
--- a/src/pages/quiz/[id]/result.tsx
+++ b/src/pages/quiz/[id]/result.tsx
@@ -14,39 +14,36 @@ function Result() {
   const [isDoneLoading, setIsDoneLoading] = useState(false);
 
   useEffect(() => {
-    if (!router.query.id || !router.query.userAnswers) {
-      return;
-    }
-    // if score is already calculated, return
-    if (score !== -1) {
-      return;
-    }
+    if (!router.isReady) return;
     // parse user answer as UserAnswer[] from router.query.userAnswers
-    setUserAnswers(JSON.parse(router.query.userAnswers as string));
-    // POST
-    http
-      .post(
-        `/quiz/${router.query.id}/finish`,
-        {
-          data: userAnswers,
-        },
-        {
-          headers: {
-            Authorization: `Bearer ${getAvailableUserData()}`,
-          },
-        }
-      )
-      .then((res) => {
-        console.log(res.data.data);
-        setScore(res.data.data.score);
-      })
-      .catch((err) => {
-        console.log(err.response.data);
-      })
-      .finally(() => {
-        setIsDoneLoading(true);
-      });
-  }, [router.query.id, router.query.userAnswers, userAnswers]);
+    if (score == -1) {
+      setUserAnswers(JSON.parse(router.query.userAnswers as string));
+      if (userAnswers.length != 0) {
+        http
+          .post(
+            `/quiz/${router.query.id}/finish`,
+            {
+              data: userAnswers,
+            },
+            {
+              headers: {
+                Authorization: `Bearer ${getAvailableUserData()}`,
+              },
+            }
+          )
+          .then((res) => {
+            console.log(res.data.data);
+            setScore(res.data.data.score);
+          })
+          .catch((err) => {
+            console.log(err.response.data);
+          })
+          .finally(() => {
+            setIsDoneLoading(true);
+          });
+      }
+    }
+  }, [router.isReady, router.query.id, router.query.userAnswers, userAnswers]);
 
   return (
     <Layout>
diff --git a/src/pages/quiz/[id]/start.tsx b/src/pages/quiz/[id]/start.tsx
index c05abd31668f0dfb6b224640691aa7b6236fcc1a..af633a0feffd7a9a2c56e971d5f9a21f87662489 100644
--- a/src/pages/quiz/[id]/start.tsx
+++ b/src/pages/quiz/[id]/start.tsx
@@ -59,22 +59,24 @@ function Quiz() {
   const hours = Math.floor(minutes / 60);
 
   useEffect(() => {
-    if (!router.query.id) {
+    if (!router.isReady) {
       return;
     }
-    http
-      .post(`/quiz/${router.query.id}/take`, {
-        Authorization: `Bearer ${getAvailableUserData()}`,
-      })
-      .then((res) => {
-        setQuizName(res.data.data.name);
-        setProblems(res.data.data.problems);
-      })
-      .catch((err) => {
-        console.log(err.response.data);
-      })
-      .finally(() => setIsDoneLoading(true));
-  }, [router.query.id]);
+    if (problems.length == 0) {
+      http
+        .post(`/quiz/${router.query.id}/take`, {
+          Authorization: `Bearer ${getAvailableUserData()}`,
+        })
+        .then((res) => {
+          setQuizName(res.data.data.name);
+          setProblems(res.data.data.problems);
+        })
+        .catch((err) => {
+          console.log(err.response.data);
+        })
+        .finally(() => setIsDoneLoading(true));
+    }
+  }, [problems.length, router.isReady, router.query.id]);
 
   const handleChangeAnswer = (problemId: string, answerId: string) => {
     // if same problemId already exists, then replace it