import { DynamicTheme } from "@/components/dynamic-theme"; import { SetRegisterPasswordForm } from "@/components/set-register-password-form"; import { getServiceUrlFromHeaders } from "@/lib/service"; 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, requestId } = searchParams; const _headers = await headers(); const { serviceUrl } = getServiceUrlFromHeaders(_headers); if (!organization) { const org: Organization | null = await getDefaultOrg({ serviceUrl, }); if (org) { organization = org.id; } } const missingData = !firstname || !lastname || !email; const legal = await getLegalAndSupportSettings({ serviceUrl, organization, }); const passwordComplexitySettings = await getPasswordComplexitySettings({ serviceUrl, organization, }); const branding = await getBrandingSettings({ serviceUrl, organization, }); const loginSettings = await getLoginSettings({ serviceUrl, organization, }); return missingData ? (

{t("missingdata.title")}

{t("missingdata.description")}

) : loginSettings?.allowRegister && loginSettings.allowUsernamePassword ? (

{t("password.title")}

{t("description")}

{legal && passwordComplexitySettings && ( )}
) : (

{t("disabled.title")}

{t("disabled.description")}

); }