From 9fdaf587ee7039eda95965903a5dcd66daf17af5 Mon Sep 17 00:00:00 2001
From: Michelle Lim <18221052@std.stei.itb.ac.id>
Date: Wed, 22 Nov 2023 19:42:37 +0900
Subject: [PATCH] fix: router readiness verification

---
 pages/calonpelanggan/create.jsx    | 10 ++++++----
 pages/calonpelanggan/edit/[id].jsx |  6 ++++--
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/pages/calonpelanggan/create.jsx b/pages/calonpelanggan/create.jsx
index d136d03..e3b5f4e 100644
--- a/pages/calonpelanggan/create.jsx
+++ b/pages/calonpelanggan/create.jsx
@@ -13,11 +13,12 @@ const Create = () => {
   const statusPelanggan = "Calon"
 
   useEffect(() => {
+    if (!router.isReady) return;
     if (router.query.kelasID) {
       setKelasPelanggan(router.query.kelasID);
       setIsDisabled(true);
     }
-  })
+  }, [router.isReady, router.query.kelasID])
 
   const handleUpdate = async () => {
     const body = JSON.stringify({
@@ -45,18 +46,19 @@ const Create = () => {
     }
     toast.success("Successfully created!")
     const token = window.localStorage.getItem("token")
-    if (!token){
+    if (!token) {
       router.push("/")
       return
     }
     const tokenParsed = token.split(" ")[1]
     fetch(`https://rpl-backend-production.up.railway.app/v1/auth/verify/${tokenParsed}`).then(async (response) => {
       const responsejson = await response.json();
-      if (responsejson.data.tipe_user === "ADMIN"){
+      if (responsejson.data.tipe_user === "ADMIN") {
         router.push("/calonpelanggan")
         return
       }
-    }).catch(error=>{
+      router.push("/")
+    }).catch(error => {
       console.error(error)
       return
     })
diff --git a/pages/calonpelanggan/edit/[id].jsx b/pages/calonpelanggan/edit/[id].jsx
index f4146de..129f6df 100644
--- a/pages/calonpelanggan/edit/[id].jsx
+++ b/pages/calonpelanggan/edit/[id].jsx
@@ -50,6 +50,7 @@ const Edit = () => {
   }
 
   useEffect(() => {
+    if (!router.isReady) return;
     const token = window.localStorage.getItem("token")
     if (token === undefined || token === null) {
       window.location.replace("/auth/login")
@@ -76,7 +77,7 @@ const Edit = () => {
       setAdminKursus(responsejson.data.adminKursus)
     })
     //eslint-disable-next-line
-  }, [])
+  }, [router.isReady])
   return <>
     <Template>
       <main className="min-h-screen px-14 py-5 bg-[#FFF6F6]">
@@ -129,7 +130,8 @@ const Edit = () => {
           <div className="flex flex-row align-middle justify-between">
             <span className="h-min my-auto font-bold text-lg">Status Pelanggan</span>
             <select value={statusPelanggan} onChange={(e) => {
-              setStatusPelanggan(e.target.value)}}>
+              setStatusPelanggan(e.target.value)
+            }}>
               <option value="Calon">Calon</option>
               <option value="Siswa">Siswa</option>
               <option value="Lulus">Lulus</option> </select>
-- 
GitLab