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