-
-
Error: {error?.message}
+
+
+
+
+ Error: {error?.message}
+
+
+
+
-
-
-
-
-
+
+
);
}
diff --git a/apps/login/src/components/idps/pages/linking-failed.tsx b/apps/login/src/components/idps/pages/linking-failed.tsx
new file mode 100644
index 0000000000..94678fb293
--- /dev/null
+++ b/apps/login/src/components/idps/pages/linking-failed.tsx
@@ -0,0 +1,28 @@
+"use client";
+
+import { LanguageProvider } from "@/components/language-provider";
+import { BrandingSettings } from "@zitadel/proto/zitadel/settings/v2/branding_settings_pb";
+import { useTranslations } from "next-intl";
+import { Alert, AlertType } from "../../alert";
+import { DynamicTheme } from "../../dynamic-theme";
+
+export function linkingFailed(branding?: BrandingSettings) {
+ const t = useTranslations("idp");
+
+ return (
+
+
+
+
{t("linkingError.title")}
+
+ {
+
+ {t("linkingError.description")}
+
+ }
+
+
+
+
+ );
+}
diff --git a/apps/login/src/components/idps/pages/linking-success.tsx b/apps/login/src/components/idps/pages/linking-success.tsx
new file mode 100644
index 0000000000..39671d8f60
--- /dev/null
+++ b/apps/login/src/components/idps/pages/linking-success.tsx
@@ -0,0 +1,30 @@
+"use client";
+
+import { BrandingSettings } from "@zitadel/proto/zitadel/settings/v2/branding_settings_pb";
+import { useTranslations } from "next-intl";
+import { DynamicTheme } from "../../dynamic-theme";
+import { IdpSignin } from "../../idp-signin";
+
+export function linkingSuccess(
+ userId: string,
+ idpIntent: { idpIntentId: string; idpIntentToken: string },
+ authRequestId?: string,
+ branding?: BrandingSettings,
+) {
+ const t = useTranslations("idp");
+
+ return (
+
+
+
{t("linkingSuccess.title")}
+
{t("linkingSuccess.description")}
+
+
+
+
+ );
+}
diff --git a/apps/login/src/components/idps/pages/login-failed.tsx b/apps/login/src/components/idps/pages/login-failed.tsx
new file mode 100644
index 0000000000..5bddf29a08
--- /dev/null
+++ b/apps/login/src/components/idps/pages/login-failed.tsx
@@ -0,0 +1,27 @@
+"use client";
+
+import { LanguageProvider } from "@/components/language-provider";
+import { BrandingSettings } from "@zitadel/proto/zitadel/settings/v2/branding_settings_pb";
+import { useTranslations } from "next-intl";
+import { Alert, AlertType } from "../../alert";
+import { DynamicTheme } from "../../dynamic-theme";
+
+export function loginFailed(branding?: BrandingSettings, error: string = "") {
+ const t = useTranslations("idp");
+
+ return (
+
+
+
+
{t("loginError.title")}
+
{t("loginError.description")}
+ {error && (
+
+ )}
+
+
+
+ );
+}
diff --git a/apps/login/src/components/idps/pages/login-success.tsx b/apps/login/src/components/idps/pages/login-success.tsx
new file mode 100644
index 0000000000..39aa71c642
--- /dev/null
+++ b/apps/login/src/components/idps/pages/login-success.tsx
@@ -0,0 +1,33 @@
+"use client";
+
+import { LanguageProvider } from "@/components/language-provider";
+import { BrandingSettings } from "@zitadel/proto/zitadel/settings/v2/branding_settings_pb";
+import { useTranslations } from "next-intl";
+import { DynamicTheme } from "../../dynamic-theme";
+import { IdpSignin } from "../../idp-signin";
+
+export function loginSuccess(
+ userId: string,
+ idpIntent: { idpIntentId: string; idpIntentToken: string },
+ authRequestId?: string,
+ branding?: BrandingSettings,
+) {
+ const t = useTranslations("idp");
+
+ return (
+
+
+
+
{t("loginSuccess.title")}
+
{t("loginSuccess.description")}
+
+
+
+
+
+ );
+}