/** * 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'; export default async function LoginPage({ searchParams, }: { searchParams: Promise; }) { // Execute PageQuery const params = await searchParams; const queryResult = await LoginPageQuery.execute(params); if (queryResult.isErr()) { // Handle query error return (
Failed to load login page
); } const viewData = queryResult.unwrap(); // Render client component with ViewData return ; }