diff --git a/app/dashboard/DashboardPage.tsx b/app/dashboard/DashboardPage.tsx new file mode 100644 index 0000000..fce7d71 --- /dev/null +++ b/app/dashboard/DashboardPage.tsx @@ -0,0 +1,9 @@ + + +export default function DashboardPage() { + return ( +
+

Dashboard

+
+ ); +} \ No newline at end of file diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx new file mode 100644 index 0000000..fbdc5a1 --- /dev/null +++ b/app/dashboard/page.tsx @@ -0,0 +1,37 @@ +"use client"; + +import DashboardPage from "./DashboardPage"; +import Loading from "@/components/Loading"; + +import { useState, useEffect } from "react"; +import { useRouter } from "next/navigation"; +import axios from "axios"; +import Cookies from "js-cookie"; + +export default function Dashboard() { + const router = useRouter(); + const [loading, setLoading] = useState(true); + + useEffect(() => { + const init = async () => { + const token = Cookies.get("token"); + if (!token) { + router.push("/"); + } + const response = await axios.post("/api/user/validate", { token }); + if (response.data.message !== "Valid") { + Cookies.remove("token"); + router.push("/"); + } else { + setLoading(false); + } + }; + init(); + }, []); + + if (loading) { + return ; + } else { + return ; + } +} \ No newline at end of file