diff --git a/src/bin/build-keycloak-theme/generateFtl/index.ts b/src/bin/build-keycloak-theme/generateFtl/index.ts index c2ed8034..47c0e7c2 100644 --- a/src/bin/build-keycloak-theme/generateFtl/index.ts +++ b/src/bin/build-keycloak-theme/generateFtl/index.ts @@ -10,7 +10,11 @@ import fs from "fs"; import { join as pathJoin } from "path"; import { objectKeys } from "evt/tools/typeSafety/objectKeys"; -export const pageIds = ["login.ftl", "register.ftl", "info.ftl", "error.ftl", "login-reset-password.ftl", "login-verify-email.ftl"] as const; +export const pageIds = [ + "login.ftl", "register.ftl", "info.ftl", + "error.ftl", "login-reset-password.ftl", + "login-verify-email.ftl", "terms.ftl" +] as const; export type PageId = typeof pageIds[number]; diff --git a/src/bin/generate-i18n-messages.ts b/src/bin/generate-i18n-messages.ts index 7e053fa2..51c76ceb 100644 --- a/src/bin/generate-i18n-messages.ts +++ b/src/bin/generate-i18n-messages.ts @@ -65,7 +65,7 @@ Object.keys(record).forEach(pageType => { '//PLEASE DO NOT EDIT MANUALLY', '', '/* spell-checker: disable */', - `export const messages= ${JSON.stringify(record[pageType], null, 2)} as const;`, + `export const messages= ${JSON.stringify(record[pageType], null, 2)};`, '/* spell-checker: enable */' ].join("\n"), "utf8") ); diff --git a/src/lib/components/KcApp.tsx b/src/lib/components/KcApp.tsx index 63c7bd8d..6fe86fa2 100644 --- a/src/lib/components/KcApp.tsx +++ b/src/lib/components/KcApp.tsx @@ -8,6 +8,7 @@ import { Info } from "./Info"; import { Error } from "./Error"; import { LoginResetPassword } from "./LoginResetPassword"; import { LoginVerifyEmail } from "./LoginVerifyEmail"; +import { Terms } from "./Terms"; export const KcApp = memo(({ kcContext, ...props }: { kcContext: KcContext; } & KcProps ) => { switch (kcContext.pageId) { @@ -17,5 +18,6 @@ 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 ; } }); \ No newline at end of file diff --git a/src/lib/components/Terms.tsx b/src/lib/components/Terms.tsx new file mode 100644 index 00000000..7a36e52b --- /dev/null +++ b/src/lib/components/Terms.tsx @@ -0,0 +1,57 @@ +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 Terms = memo(({ kcContext, ...props }: { kcContext: KcContext.Terms; } & KcProps) => { + + const { msg, msgStr } = useKcMessage(); + + const { url } = kcContext; + + return ( +