SPB Git forge
38commits 1branches 0releases
338.7 MBsize
maindefault branch
6 h agolast push
HTML 53.9% TypeScript 44.5% JavaScript 0.6% SQL 0.5%
912 B · 22 lines tsx
Raw Blame History
1import type { Metadata } from "next";2import { cookies } from "next/headers";3import { redirect } from "next/navigation";4import { ADMIN_COOKIE } from "@/lib/admin-api";5import { LoginForm } from "@/components/admin/login-form";67export const metadata: Metadata = { title: "Sign in" };8export const dynamic = "force-dynamic";910export default async function AdminLoginPage({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {11  const sp = await searchParams;12  const next = typeof sp.next === "string" ? sp.next : "/admin";13  const reason = typeof sp.reason === "string" ? sp.reason : undefined;14  const jar = await cookies();15  if (jar.get(ADMIN_COOKIE)?.value && reason !== "expired") redirect("/admin");16  return (17    <main id="main" className="flex min-h-dvh items-center justify-center px-4 py-10">18      <LoginForm next={next} reason={reason} />19    </main>20  );21}22