import CompleteProfileForm from "@/components/pages/profile/form";
import { createLocaleFunction } from "@/components/server-locale";
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
import { cachedGetMe } from "@/lib/api/server-labs";
import { cachedDecideLocale } from "@/lib/server-locale";
import { isUserProfileCompleted } from "@/lib/users";
import { redirect } from "next/navigation";

export default async function CompleteProfilePage(props: {
  searchParams: Promise<
    Record<"complete_redirect_to", string | string[] | undefined>
  >;
}) {
  const me = await cachedGetMe();
  const searchParams = await props.searchParams;

  if (!me) {
    redirect("/");
  }
  const locale = await cachedDecideLocale();
  const t = createLocaleFunction(locale);

  const completed = isUserProfileCompleted(me);

  return (
    <main className="py-16">
      <div className="mx-auto max-w-md space-y-4">
        {!completed && (
          <Alert>
            <AlertTitle>{t("profile.incomplete.title")}</AlertTitle>
            <AlertDescription>
              {t("profile.incomplete.description")}
            </AlertDescription>
          </Alert>
        )}
        <CompleteProfileForm
          user={me}
          completed={completed}
          completeRedirectTo={
            searchParams.complete_redirect_to &&
            String(searchParams.complete_redirect_to)
          }
        />
      </div>
    </main>
  );
}
