From c2fd92f51662cb26892d054dff6ccbac2faf1f3c Mon Sep 17 00:00:00 2001 From: Joseph Garrone Date: Fri, 10 May 2024 21:48:47 +0200 Subject: [PATCH] Add delete-account-confirm.ftl page --- src/bin/keycloakify/generateFtl/pageId.ts | 3 +- src/login/Fallback.tsx | 3 ++ src/login/kcContext/KcContext.ts | 8 +++- src/login/pages/DeleteAccountConfirm.tsx | 53 +++++++++++++++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 src/login/pages/DeleteAccountConfirm.tsx diff --git a/src/bin/keycloakify/generateFtl/pageId.ts b/src/bin/keycloakify/generateFtl/pageId.ts index c60fbe94..679a19e5 100644 --- a/src/bin/keycloakify/generateFtl/pageId.ts +++ b/src/bin/keycloakify/generateFtl/pageId.ts @@ -27,7 +27,8 @@ export const loginThemePageIds = [ "select-authenticator.ftl", "saml-post-form.ftl", "delete-credential.ftl", - "code.ftl" + "code.ftl", + "delete-account-confirm.ftl" ] as const; export const accountThemePageIds = ["password.ftl", "account.ftl", "sessions.ftl", "totp.ftl", "applications.ftl", "log.ftl"] as const; diff --git a/src/login/Fallback.tsx b/src/login/Fallback.tsx index 447218fd..6510d3da 100644 --- a/src/login/Fallback.tsx +++ b/src/login/Fallback.tsx @@ -33,6 +33,7 @@ const SelectAuthenticator = lazy(() => import("keycloakify/login/pages/SelectAut const SamlPostForm = lazy(() => import("keycloakify/login/pages/SamlPostForm")); const DeleteCredential = lazy(() => import("keycloakify/login/pages/DeleteCredential")); const Code = lazy(() => import("keycloakify/login/pages/Code")); +const DeleteAccountConfirm = lazy(() => import("keycloakify/login/pages/DeleteAccountConfirm")); type FallbackProps = PageProps & { UserProfileFormFields: LazyOrNot<(props: UserProfileFormFieldsProps) => JSX.Element>; @@ -101,6 +102,8 @@ export default function Fallback(props: FallbackProps) { return ; case "code.ftl": return ; + case "delete-account-confirm.ftl": + return ; } assert>(false); })()} diff --git a/src/login/kcContext/KcContext.ts b/src/login/kcContext/KcContext.ts index 3004aa83..06040321 100644 --- a/src/login/kcContext/KcContext.ts +++ b/src/login/kcContext/KcContext.ts @@ -37,7 +37,8 @@ export type KcContext = | KcContext.SelectAuthenticator | KcContext.SamlPostForm | KcContext.DeleteCredential - | KcContext.Code; + | KcContext.Code + | KcContext.DeleteAccountConfirm; assert(); @@ -507,6 +508,11 @@ export declare namespace KcContext { error?: string; }; }; + + export type DeleteAccountConfirm = Common & { + pageId: "delete-account-confirm.ftl"; + triggered_from_aia: boolean; + }; } export type UserProfile = { diff --git a/src/login/pages/DeleteAccountConfirm.tsx b/src/login/pages/DeleteAccountConfirm.tsx new file mode 100644 index 00000000..2b80cda0 --- /dev/null +++ b/src/login/pages/DeleteAccountConfirm.tsx @@ -0,0 +1,53 @@ +import { clsx } from "keycloakify/tools/clsx"; +import type { PageProps } from "keycloakify/login/pages/PageProps"; +import { useGetClassName } from "keycloakify/login/lib/useGetClassName"; +import type { KcContext } from "../kcContext"; +import type { I18n } from "../i18n"; + +export default function DeleteAccountConfirm(props: PageProps, I18n>) { + const { kcContext, i18n, doUseDefaultCss, Template, classes } = props; + + const { getClassName } = useGetClassName({ + doUseDefaultCss, + classes + }); + + const { url, triggered_from_aia } = kcContext; + + const { msg, msgStr } = i18n; + + return ( + + ); +}