diff --git a/src/bin/build-keycloak-theme/generateFtl/index.ts b/src/bin/build-keycloak-theme/generateFtl/index.ts
index 8b770fa0..2ca60ffe 100644
--- a/src/bin/build-keycloak-theme/generateFtl/index.ts
+++ b/src/bin/build-keycloak-theme/generateFtl/index.ts
@@ -15,7 +15,8 @@ export const pageIds = [
"login.ftl", "register.ftl", "info.ftl",
"error.ftl", "login-reset-password.ftl",
"login-verify-email.ftl", "terms.ftl",
- "login-otp.ftl", "login-update-profile.ftl"
+ "login-otp.ftl", "login-update-profile.ftl",
+ "login-idp-link-confirm.ftl"
] as const;
export type PageId = typeof pageIds[number];
diff --git a/src/bin/build-keycloak-theme/generateFtl/login-idp-link-confirm.ftl b/src/bin/build-keycloak-theme/generateFtl/login-idp-link-confirm.ftl
new file mode 100644
index 00000000..1bbecb76
--- /dev/null
+++ b/src/bin/build-keycloak-theme/generateFtl/login-idp-link-confirm.ftl
@@ -0,0 +1,11 @@
+
\ No newline at end of file
diff --git a/src/lib/components/KcApp.tsx b/src/lib/components/KcApp.tsx
index cc6912cd..c92f23e2 100644
--- a/src/lib/components/KcApp.tsx
+++ b/src/lib/components/KcApp.tsx
@@ -9,10 +9,11 @@ import { Error } from "./Error";
import { LoginResetPassword } from "./LoginResetPassword";
import { LoginVerifyEmail } from "./LoginVerifyEmail";
import { Terms } from "./Terms";
-import { LoginOtp } from "./LoginOtp";
-import { LoginUpdateProfile } from "./LoginUpdateProfile";
+import { LoginOtp } from "./LoginOtp";
+import { LoginUpdateProfile } from "./LoginUpdateProfile";
+import { LoginIdpLinkConfirm } from "./LoginIdpLinkConfirm";
-export const KcApp = memo(({ kcContext, ...props }: { kcContext: KcContext; } & KcProps ) => {
+export const KcApp = memo(({ kcContext, ...props }: { kcContext: KcContext; } & KcProps) => {
switch (kcContext.pageId) {
case "login.ftl": return ;
case "register.ftl": return ;
@@ -20,8 +21,9 @@ export const KcApp = memo(({ kcContext, ...props }: { kcContext: KcContext; } &
case "error.ftl": return ;
case "login-reset-password.ftl": return ;
case "login-verify-email.ftl": return ;
- case "terms.ftl": return ;
- case "login-otp.ftl": return ;
+ case "terms.ftl": return ;
+ case "login-otp.ftl": return ;
case "login-update-profile.ftl": return ;
+ case "login-idp-link-confirm.ftl": return ;
}
});
\ No newline at end of file
diff --git a/src/lib/components/LoginIdpLinkConfirm.tsx b/src/lib/components/LoginIdpLinkConfirm.tsx
new file mode 100644
index 00000000..89448741
--- /dev/null
+++ b/src/lib/components/LoginIdpLinkConfirm.tsx
@@ -0,0 +1,58 @@
+
+import { memo } from "react";
+import { Template } from "./Template";
+import type { KcProps } from "./KcProps";
+import type { KcContext } from "../KcContext";
+import { useKcMessage } from "../i18n/useKcMessage";
+import { cx } from "tss-react";
+
+export const LoginIdpLinkConfirm = memo(({ kcContext, ...props }: { kcContext: KcContext.LoginIdpLinkConfirm; } & KcProps) => {
+
+ const { msg } = useKcMessage();
+
+ const { url, idpAlias } = kcContext;
+
+ return (
+
+
+
+
+
+
+ }
+ />
+ );
+
+});
+
+
diff --git a/src/lib/kcContext.ts b/src/lib/kcContext.ts
index 07ac31d9..fb54c368 100644
--- a/src/lib/kcContext.ts
+++ b/src/lib/kcContext.ts
@@ -17,7 +17,8 @@ type ExtractAfterStartingWith =
export type KcContext =
KcContext.Login | KcContext.Register | KcContext.Info |
KcContext.Error | KcContext.LoginResetPassword | KcContext.LoginVerifyEmail |
- KcContext.Terms | KcContext.LoginOtp | KcContext.LoginUpdateProfile;
+ KcContext.Terms | KcContext.LoginOtp | KcContext.LoginUpdateProfile |
+ KcContext.LoginIdpLinkConfirm;
export declare namespace KcContext {
@@ -190,6 +191,11 @@ export declare namespace KcContext {
};
+ export type LoginIdpLinkConfirm = Common & {
+ pageId: "login-idp-link-confirm.ftl";
+ idpAlias: string;
+ };
+
}
doExtends();
diff --git a/src/lib/kcContextMocks/index.ts b/src/lib/kcContextMocks/index.ts
index 758287bc..53a051db 100644
--- a/src/lib/kcContextMocks/index.ts
+++ b/src/lib/kcContextMocks/index.ts
@@ -241,3 +241,9 @@ export const kcLoginUpdateProfileContext: KcContext.LoginUpdateProfile = {
}
};
+export const kcLoginIdpLinkConfirmContext: KcContext.LoginIdpLinkConfirm ={
+ ...kcCommonContext,
+ "pageId": "login-idp-link-confirm.ftl",
+ "idpAlias": "FranceConnect"
+};
+