import { DynamicTheme } from "@/components/dynamic-theme"; import { SignInWithIdp } from "@/components/sign-in-with-idp"; import { UsernameForm } from "@/components/username-form"; import { getApiUrlOfHeaders } from "@/lib/service"; import { getActiveIdentityProviders, getBrandingSettings, getDefaultOrg, getLoginSettings, } 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: "loginname" }); const loginName = searchParams?.loginName; const authRequestId = searchParams?.authRequestId; const organization = searchParams?.organization; const suffix = searchParams?.suffix; const submit: boolean = searchParams?.submit === "true"; const _headers = await headers(); const instanceUrl = getApiUrlOfHeaders(_headers); const host = instanceUrl; if (!host || typeof host !== "string") { throw new Error("No host found"); } let defaultOrganization; if (!organization) { const org: Organization | null = await getDefaultOrg({ host }); if (org) { defaultOrganization = org.id; } } const loginSettings = await getLoginSettings({ host, organization: organization ?? defaultOrganization, }); const contextLoginSettings = await getLoginSettings({ host, organization }); const identityProviders = await getActiveIdentityProviders({ host, orgId: organization ?? defaultOrganization, }).then((resp) => { return resp.identityProviders; }); const branding = await getBrandingSettings({ host, organization: organization ?? defaultOrganization, }); return (

{t("title")}

{t("description")}

{identityProviders && ( )}
); }