sourcebot/packages/web/src/app/login/page.tsx
2025-06-04 16:42:52 -07:00

49 lines
1.5 KiB
TypeScript

import { auth } from "@/auth";
import { LoginForm } from "./components/loginForm";
import { redirect } from "next/navigation";
import { getProviders } from "@/auth";
import { Footer } from "@/app/components/footer";
import { createLogger } from "@sourcebot/logger";
const logger = createLogger('login-page');
interface LoginProps {
searchParams: {
callbackUrl?: string;
error?: string;
}
}
export default async function Login({ searchParams }: LoginProps) {
logger.info("Login page loaded");
const session = await auth();
if (session) {
logger.info("Session found in login page, redirecting to home");
return redirect("/");
}
const providers = getProviders();
const providerData = providers
.map((provider) => {
if (typeof provider === "function") {
const providerInfo = provider()
return { id: providerInfo.id, name: providerInfo.name }
} else {
return { id: provider.id, name: provider.name }
}
});
return (
<div className="flex flex-col min-h-screen bg-backgroundSecondary">
<div className="flex-1 flex flex-col items-center p-4 sm:p-12 w-full">
<LoginForm
callbackUrl={searchParams.callbackUrl}
error={searchParams.error}
providers={providerData}
context="login"
/>
</div>
<Footer />
</div>
)
}