File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
import { AuthCard } from '@/components/ui/auth-card';
import { getSessionAdmin } from '@/lib/auth/dal';
import { LOGOUT_ERROR_QUERY_PARAM } from '@/lib/constants/logout';
import { redirect } from 'next/navigation';
import { LoginForm } from './_components/login-form';
import { LogoutNotice } from './_components/logout-notice';
// cookies()로 이미 동적이지만, 정적 프리렌더로 데이터가 빌드 산출물에 박히는 경로를
// 원천 차단하기 위해 명시적으로 강제한다.
export const dynamic = 'force-dynamic';
interface PageProps {
searchParams: Promise<Record<string, string | string[] | undefined>>;
}
export default async function Page({ searchParams }: PageProps) {
const admin = await getSessionAdmin();
if (admin) {
redirect('/');
}
const resolvedSearchParams = await searchParams;
const logoutError = resolvedSearchParams[LOGOUT_ERROR_QUERY_PARAM];
const showLogoutError = typeof logoutError === 'string' && logoutError.length > 0;
return (
<AuthCard>
<LogoutNotice showError={showLogoutError} />
<LoginForm />
</AuthCard>
);
}