/** * Login Page * * RSC composition pattern: * 1. PageQuery executes to get ViewData * 2. Client component renders with ViewData */ import { LoginPageQuery } from '@/lib/page-queries/auth/LoginPageQuery'; import { LoginClient } from './LoginClient'; import { AuthError } from '@/ui/AuthError'; export default async function LoginPage({ searchParams, }: { searchParams: Promise; }) { // Execute PageQuery const params = await searchParams; const queryResult = await LoginPageQuery.execute(params); if (queryResult.isErr()) { return ; } const viewData = queryResult.unwrap(); // Render client component with ViewData return ; }