import styles from "@styles/Home.module.css" import { Page } from "@geist-ui/core/dist" import { useEffect } from "react" import Admin from "@components/admin" import useSignedIn from "@lib/hooks/use-signed-in" import { useRouter } from "next/router" import { GetServerSideProps } from "next" import cookie from "cookie" const AdminPage = () => { const { signedIn } = useSignedIn() const router = useRouter() useEffect(() => { if (typeof window === "undefined") return if (!signedIn) { router.push("/") } }, [router, signedIn]) return ( ) } export const getServerSideProps: GetServerSideProps = async ({ req }) => { const driftToken = cookie.parse(req.headers.cookie || "")[`drift-token`] const res = await fetch(`${process.env.API_URL}/admin/is-admin`, { headers: { Authorization: `Bearer ${driftToken}`, "x-secret-key": process.env.SECRET_KEY || "" } }) if (res.ok) { return { props: { signedIn: true } } } else { return { redirect: { destination: "/", permanent: false } } } } export default AdminPage