/**
 * Forgot Password Page
 *
 * RSC composition pattern:
 * 1. PageQuery executes to get ViewData
 * 2. Client component renders with ViewData
 */

import { AuthError } from '@/components/auth/AuthError';
import { ForgotPasswordPageQuery } from '@/lib/page-queries/auth/ForgotPasswordPageQuery';
import { ForgotPasswordClient } from '@/client-wrapper/ForgotPasswordClient';

export default async function ForgotPasswordPage({
  searchParams,
}: {
  searchParams: Promise<{ [key: string]: string | string[] | undefined }>;
}) {
  // Execute PageQuery
  const params = await searchParams;
  const queryResult = await ForgotPasswordPageQuery.execute(params);

  if (queryResult.isErr()) {
    return <AuthError action="forgot password" />;
  }

  const viewData = queryResult.unwrap();

  // Render client component with ViewData
  return <ForgotPasswordClient viewData={viewData} />;
}