Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
79a580b4a5 | |||
994f1f8d3d | |||
a2ea81b3b8 | |||
a0461e3ef0 | |||
5357626317 | |||
552c95c59e |
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "keycloakify",
|
||||
"version": "11.3.14",
|
||||
"version": "11.3.17",
|
||||
"description": "Framework to create custom Keycloak UIs",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
@ -51,7 +51,7 @@ export async function command(params: { buildContext: BuildContext }) {
|
||||
2
|
||||
)};`,
|
||||
``,
|
||||
`export type KcContext =`,
|
||||
`type KcContext =`,
|
||||
hasLoginTheme && ` | import("./login/KcContext").KcContext`,
|
||||
hasAccountTheme && ` | import("./account/KcContext").KcContext`,
|
||||
` ;`,
|
||||
|
@ -16,6 +16,9 @@ import type { GenericI18n_noJsx } from "./GenericI18n_noJsx";
|
||||
|
||||
export type KcContextLike = {
|
||||
themeName: string;
|
||||
realm: {
|
||||
internationalizationEnabled: boolean;
|
||||
};
|
||||
locale?: {
|
||||
currentLanguageTag: string;
|
||||
supported: { languageTag: string; url: string; label: string }[];
|
||||
@ -91,14 +94,16 @@ export function createGetI18n<
|
||||
return cachedResult;
|
||||
}
|
||||
|
||||
const kcContextLocale = params.kcContext.realm.internationalizationEnabled ? params.kcContext.locale : undefined;
|
||||
|
||||
{
|
||||
const currentLanguageTag = kcContext.locale?.currentLanguageTag ?? FALLBACK_LANGUAGE_TAG;
|
||||
const currentLanguageTag = kcContextLocale?.currentLanguageTag ?? FALLBACK_LANGUAGE_TAG;
|
||||
const html = document.querySelector("html");
|
||||
assert(html !== null);
|
||||
html.lang = currentLanguageTag;
|
||||
|
||||
const isRtl = (() => {
|
||||
const { rtl } = kcContext.locale ?? {};
|
||||
const { rtl } = kcContextLocale ?? {};
|
||||
|
||||
if (rtl !== undefined) {
|
||||
return rtl;
|
||||
@ -154,11 +159,11 @@ export function createGetI18n<
|
||||
}
|
||||
|
||||
from_server: {
|
||||
if (kcContext.locale === undefined) {
|
||||
if (kcContextLocale === undefined) {
|
||||
break from_server;
|
||||
}
|
||||
|
||||
const supportedEntry = kcContext.locale.supported.find(entry => entry.languageTag === languageTag);
|
||||
const supportedEntry = kcContextLocale.supported.find(entry => entry.languageTag === languageTag);
|
||||
|
||||
if (supportedEntry === undefined) {
|
||||
break from_server;
|
||||
@ -180,7 +185,7 @@ export function createGetI18n<
|
||||
};
|
||||
|
||||
const currentLanguage: I18n["currentLanguage"] = (() => {
|
||||
const languageTag = id<string>(kcContext.locale?.currentLanguageTag ?? FALLBACK_LANGUAGE_TAG) as LanguageTag;
|
||||
const languageTag = id<string>(kcContextLocale?.currentLanguageTag ?? FALLBACK_LANGUAGE_TAG) as LanguageTag;
|
||||
|
||||
return {
|
||||
languageTag,
|
||||
@ -191,8 +196,8 @@ export function createGetI18n<
|
||||
const enabledLanguages: I18n["enabledLanguages"] = (() => {
|
||||
const enabledLanguages: I18n["enabledLanguages"] = [];
|
||||
|
||||
if (kcContext.locale !== undefined) {
|
||||
for (const entry of kcContext.locale.supported ?? []) {
|
||||
if (kcContextLocale !== undefined) {
|
||||
for (const entry of kcContextLocale.supported ?? []) {
|
||||
const languageTag = id<string>(entry.languageTag) as LanguageTag;
|
||||
|
||||
enabledLanguages.push({
|
||||
|
@ -70,9 +70,9 @@ export default function LoginRecoveryAuthnCodeConfig(props: PageProps<Extract<Kc
|
||||
type="checkbox"
|
||||
id="kcRecoveryCodesConfirmationCheck"
|
||||
name="kcRecoveryCodesConfirmationCheck"
|
||||
onChange={function () {
|
||||
//@ts-expect-error: This is code from the original theme, we trust it.
|
||||
document.getElementById("saveRecoveryAuthnCodesBtn").disabled = !this.checked;
|
||||
onChange={event => {
|
||||
//@ts-expect-error: This is inherited from the original code
|
||||
document.getElementById("saveRecoveryAuthnCodesBtn").disabled = !event.target.checked;
|
||||
}}
|
||||
/>
|
||||
<label htmlFor="kcRecoveryCodesConfirmationCheck">{msg("recovery-codes-confirmation-message")}</label>
|
||||
|
Reference in New Issue
Block a user