import { DynamicTheme } from "@/components/dynamic-theme"; import { RegisterForm } from "@/components/register-form"; import { getBrandingSettings, getDefaultOrg, getLegalAndSupportSettings, getLoginSettings, getPasswordComplexitySettings, } from "@/lib/zitadel"; import { Organization } from "@zitadel/proto/zitadel/org/v2/org_pb"; import { getLocale, getTranslations } from "next-intl/server"; import { headers } from "next/headers"; export default async function Page(props: { searchParams: Promise>; }) { const searchParams = await props.searchParams; const locale = getLocale(); const t = await getTranslations({ locale, namespace: "register" }); let { firstname, lastname, email, organization, authRequestId } = searchParams; const host = (await headers()).get("host"); if (!host || typeof host !== "string") { throw new Error("No host found"); } if (!organization) { const org: Organization | null = await getDefaultOrg({ host }); if (org) { organization = org.id; } } const legal = await getLegalAndSupportSettings({ host, organization }); const passwordComplexitySettings = await getPasswordComplexitySettings({ host, organization, }); const branding = await getBrandingSettings({ host, organization }); const loginSettings = await getLoginSettings({ host, organization }); if (!loginSettings?.allowRegister) { return (

{t("disabled.title")}

{t("disabled.description")}

); } return (

{t("title")}

{t("description")}

{legal && passwordComplexitySettings && ( )}
); }