import type { Metadata } from "next"; import { redirect } from "next/navigation"; import { Suspense } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { LoginForm } from "./login-form"; export const metadata: Metadata = { title: "登录", }; const hasKeycloak = !!process.env.AUTH_KEYCLOAK_ISSUER; export default async function LoginPage({ searchParams, }: { searchParams: Promise<{ [key: string]: string | string[] | undefined }>; }) { const sp = await searchParams; const callbackUrl = typeof sp.callbackUrl === "string" ? sp.callbackUrl : null; const error = typeof sp.error === "string" ? sp.error : null; if (!callbackUrl && !error) { redirect("/?login=1"); } return (