@keycloakify/keycloak-account-ui 25.0.4-rc.0 → 25.0.4-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/KcAccountUi.js +2 -2
  2. package/KcAccountUi.js.map +1 -1
  3. package/KcAccountUiLoader.d.ts +46 -24
  4. package/KcAccountUiLoader.js +194 -34
  5. package/KcAccountUiLoader.js.map +1 -1
  6. package/README.md +12 -14
  7. package/i18n.d.ts +1 -1
  8. package/i18n.js +2 -1
  9. package/i18n.js.map +1 -1
  10. package/messages/messages_ar.properties +187 -0
  11. package/messages/messages_ca.properties +125 -0
  12. package/messages/messages_cs.properties +22 -0
  13. package/messages/messages_da.properties +36 -0
  14. package/messages/messages_de.properties +194 -0
  15. package/messages/messages_el.properties +125 -0
  16. package/messages/messages_en.properties +201 -0
  17. package/messages/messages_es.properties +125 -0
  18. package/messages/messages_fa.properties +155 -0
  19. package/messages/messages_fi.properties +56 -0
  20. package/messages/messages_fr.properties +171 -0
  21. package/messages/messages_hu.properties +125 -0
  22. package/messages/messages_it.properties +124 -0
  23. package/messages/messages_ja.properties +36 -0
  24. package/messages/messages_ka.properties +201 -0
  25. package/messages/messages_lt.properties +22 -0
  26. package/messages/messages_lv.properties +30 -0
  27. package/messages/messages_nl.properties +166 -0
  28. package/messages/messages_no.properties +22 -0
  29. package/messages/messages_pl.properties +182 -0
  30. package/messages/messages_pt.properties +188 -0
  31. package/messages/messages_pt_BR.properties +94 -0
  32. package/messages/messages_ru.properties +158 -0
  33. package/messages/messages_sk.properties +26 -0
  34. package/messages/messages_sv.properties +22 -0
  35. package/messages/messages_th.properties +125 -0
  36. package/messages/messages_tr.properties +172 -0
  37. package/messages/messages_uk.properties +187 -0
  38. package/messages/messages_zh_CN.properties +194 -0
  39. package/messages/messages_zh_TW.properties +188 -0
  40. package/package.json +38 -4
  41. package/personal-info/PersonalInfo.js +2 -2
  42. package/personal-info/PersonalInfo.js.map +1 -1
  43. package/root/Header.js +1 -1
  44. package/root/Header.js.map +1 -1
  45. package/src/KcAccountUi.tsx +2 -2
  46. package/src/KcAccountUiLoader.tsx +310 -60
  47. package/src/i18n.ts +3 -1
  48. package/src/personal-info/PersonalInfo.tsx +3 -2
  49. package/src/root/Header.tsx +1 -1
  50. package/src/utils/formatDate.ts +3 -2
  51. package/src/zKcContextLike.ts +230 -0
  52. package/utils/formatDate.js +2 -2
  53. package/utils/formatDate.js.map +1 -1
  54. package/zKcContextLike.d.ts +7 -0
  55. package/zKcContextLike.js +138 -0
  56. package/zKcContextLike.js.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"PersonalInfo.js","sourceRoot":"","sources":["../src/personal-info/PersonalInfo.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PersonalInfo.js","sourceRoot":"","sources":["../src/personal-info/PersonalInfo.tsx"],"names":[],"mappings":"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"}
package/root/Header.js CHANGED
@@ -23,7 +23,7 @@ export const Header = () => {
23
23
  const indexHref = logoUrl.startsWith("/") ? internalLogoHref : logoUrl;
24
24
  return (_jsx(KeycloakMasthead, { "data-testid": "page-header", keycloak: keycloak, features: { hasManageAccount: false }, showNavToggle: true, brand: {
25
25
  href: indexHref,
26
- src: joinPath(environment.resourceUrl, brandImage),
26
+ src: /https?:/.test(brandImage) || brandImage.startsWith("data:") || brandImage.startsWith("/") ? brandImage : joinPath(environment.resourceUrl, brandImage),
27
27
  alt: t("logo"),
28
28
  className: style.brand,
29
29
  }, toolbarItems: [_jsx(ReferrerLink, {}, "link")] }));
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../src/root/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,EACL,cAAc,GACf,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,iDAAiD,CAAC;AAE3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAE5E,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAE/B,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAC/B,KAAC,MAAM,mBACO,eAAe,EAC3B,SAAS,EAAC,GAAG,EACb,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,EACpD,OAAO,EAAC,MAAM,EACd,IAAI,EAAE,KAAC,yBAAyB,KAAG,EACnC,YAAY,EAAC,OAAO,EACpB,QAAQ,kBAEP,CAAC,CAAC,QAAQ,EAAE;YACX,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC;SACjE,CAAC,GACK,CACV,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IACnD,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC;IAClD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C,0EAA0E;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;IAEvE,OAAO,CACL,KAAC,gBAAgB,mBACH,aAAa,EACzB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,EACrC,aAAa,QACb,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC;YAClD,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,SAAS,EAAE,KAAK,CAAC,KAAK;SACvB,EACD,YAAY,EAAE,CAAC,KAAC,YAAY,MAAK,MAAM,CAAG,CAAC,GAC3C,CACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../src/root/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,EACL,cAAc,GACf,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,iDAAiD,CAAC;AAE3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAE5E,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAE/B,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAC/B,KAAC,MAAM,mBACO,eAAe,EAC3B,SAAS,EAAC,GAAG,EACb,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,EACpD,OAAO,EAAC,MAAM,EACd,IAAI,EAAE,KAAC,yBAAyB,KAAG,EACnC,YAAY,EAAC,OAAO,EACpB,QAAQ,kBAEP,CAAC,CAAC,QAAQ,EAAE;YACX,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC;SACjE,CAAC,GACK,CACV,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IACnD,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC;IAClD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C,0EAA0E;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;IAEvE,OAAO,CACL,KAAC,gBAAgB,mBACH,aAAa,EACzB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,EACrC,aAAa,QACb,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC;YAC5J,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,SAAS,EAAE,KAAK,CAAC,KAAK;SACvB,EACD,YAAY,EAAE,CAAC,KAAC,YAAY,MAAK,MAAM,CAAG,CAAC,GAC3C,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -4,11 +4,11 @@ import "@patternfly/patternfly/patternfly-addons.css";
4
4
 
5
5
  import { createBrowserRouter, RouterProvider } from "react-router-dom";
6
6
 
7
- import { i18n } from "@keycloakify/keycloak-account-ui/i18n";
7
+ import { initI18n } from "@keycloakify/keycloak-account-ui/i18n";
8
8
  import { routes } from "@keycloakify/keycloak-account-ui/routes";
9
9
 
10
10
  const router = createBrowserRouter(routes);
11
- const prI18nInitialized = i18n.init();
11
+ const prI18nInitialized = initI18n();
12
12
 
13
13
  export default function KeycloakAccountUi() {
14
14
  const [isI18nInitialized, setI18nInitialized] = useReducer(() => true, false);
@@ -1,38 +1,79 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /* eslint-disable @typescript-eslint/no-namespace */
1
3
  import { Suspense, useMemo, type LazyExoticComponent } from "react";
2
- import { assert } from "tsafe/assert";
3
- import { is } from "tsafe/is";
4
+ import { assert, is } from "tsafe/assert";
4
5
  import type { Environment } from "@keycloakify/keycloak-account-ui/environment";
5
6
  import type { MenuItem } from "@keycloakify/keycloak-account-ui/root/PageNav";
6
7
  import { joinPath } from "@keycloakify/keycloak-account-ui/utils/joinPath";
7
8
  import defaultContent from "@keycloakify/keycloak-account-ui/public/content";
8
9
  import defaultLogoSvgUrl from "@keycloakify/keycloak-account-ui/public/logo.svg";
10
+ import { getI18n } from "react-i18next";
11
+ //import { logValidationResult } from "./zKcContextLike";
12
+
13
+ export type KcContextLike =
14
+ | KcContextLike.Keycloak25AndUp
15
+ | KcContextLike.Keycloak20To24
16
+ | KcContextLike.Keycloak19;
17
+
18
+ export namespace KcContextLike {
19
+ export type Common = {
20
+ realm: {
21
+ name: string;
22
+ registrationEmailAsUsername: boolean;
23
+ editUsernameAllowed: boolean;
24
+ isInternationalizationEnabled: boolean;
25
+ identityFederationEnabled: boolean;
26
+ userManagedAccessAllowed: boolean;
27
+ };
28
+ resourceUrl: string;
29
+ baseUrl: {
30
+ rawSchemeSpecificPart: string;
31
+ scheme: string;
32
+ };
33
+ locale: string;
34
+ isAuthorizationEnabled: boolean;
35
+ deleteAccountAllowed: boolean;
36
+ updateEmailFeatureEnabled: boolean;
37
+ updateEmailActionEnabled: boolean;
38
+ };
9
39
 
10
- export type KcContextLike = {
11
- serverBaseUrl: string;
12
- authUrl: string;
13
- authServerUrl: string;
14
- realm: {
15
- name: string;
16
- registrationEmailAsUsername: boolean;
17
- editUsernameAllowed: boolean;
18
- isInternationalizationEnabled: boolean;
19
- identityFederationEnabled: boolean;
20
- userManagedAccessAllowed: boolean;
40
+ export type I18nApi = {
41
+ msgJSON: string;
42
+ supportedLocales?: Record<string, string>;
21
43
  };
22
- clientId: string;
23
- resourceUrl: string;
24
- baseUrl: {
25
- rawSchemeSpecificPart: string;
26
- scheme: string;
44
+
45
+ export type Keycloak25AndUp = Common & {
46
+ serverBaseUrl: string;
47
+ authUrl: string;
48
+ clientId: string;
49
+ authServerUrl: string;
50
+ isOid4VciEnabled: boolean;
51
+ isViewGroupsEnabled: boolean;
27
52
  };
28
- locale: string;
29
- isAuthorizationEnabled: boolean;
30
- deleteAccountAllowed: boolean;
31
- updateEmailFeatureEnabled: boolean;
32
- updateEmailActionEnabled: boolean;
33
- isViewGroupsEnabled: boolean;
34
- isOid4VciEnabled: boolean;
35
- };
53
+
54
+ export type Keycloak20To24 = Common &
55
+ I18nApi & {
56
+ authUrl: {
57
+ rawSchemeSpecificPart: string;
58
+ scheme: string;
59
+ };
60
+ isViewGroupsEnabled: boolean;
61
+ };
62
+
63
+ export type Keycloak19 = Common &
64
+ I18nApi & {
65
+ authUrl: {
66
+ rawSchemeSpecificPart: string;
67
+ scheme: string;
68
+ };
69
+ };
70
+ }
71
+
72
+ function getIsKeycloak25AndUp(
73
+ kcContext: KcContextLike,
74
+ ): kcContext is KcContextLike.Keycloak25AndUp {
75
+ return "serverBaseUrl" in kcContext;
76
+ }
36
77
 
37
78
  type LazyExoticComponentLike = {
38
79
  _result: unknown;
@@ -91,41 +132,71 @@ function init(
91
132
 
92
133
  const { content = defaultContent, kcContext } = params;
93
134
 
94
- const logoUrl = (() => {
95
- const logoUrl_params = params.logoUrl ?? defaultLogoSvgUrl;
135
+ //logValidationResult(kcContext);
96
136
 
97
- const url = new URL(
98
- logoUrl_params.startsWith("http")
99
- ? logoUrl_params
100
- : joinPath(window.location.origin, logoUrl_params),
101
- );
137
+ const logoUrl = params.logoUrl ?? defaultLogoSvgUrl;
138
+
139
+ const resourceUrl = kcContext.resourceUrl;
140
+
141
+ const serverBaseUrl = (() => {
142
+ if ("serverBaseUrl" in kcContext) {
143
+ return kcContext.serverBaseUrl;
144
+ }
145
+
146
+ const { authUrl } = kcContext;
147
+
148
+ if (typeof authUrl === "string") {
149
+ return authUrl;
150
+ }
102
151
 
103
- return url.href.substring(url.origin.length);
152
+ return `${authUrl.scheme}:${authUrl.rawSchemeSpecificPart.replace(/\$/, "")}`;
104
153
  })();
105
154
 
106
- const resourceUrl = kcContext.resourceUrl;
155
+ const authUrl = (() => {
156
+ const { authUrl } = kcContext;
107
157
 
108
- if (!logoUrl.startsWith(resourceUrl)) {
109
- const error = new Error(`ERROR: The logo url can't be an external url.`);
110
- alert(error.message);
111
- throw error;
112
- }
158
+ if (typeof authUrl === "string") {
159
+ return authUrl;
160
+ }
161
+
162
+ return `${authUrl.scheme}:${authUrl.rawSchemeSpecificPart}`;
163
+ })();
164
+
165
+ const clientId = (() => {
166
+ if ("clientId" in kcContext) {
167
+ return kcContext.clientId;
168
+ }
169
+
170
+ return "account-console";
171
+ })();
172
+
173
+ const authServerUrl = (() => {
174
+ if ("authServerUrl" in kcContext) {
175
+ return kcContext.authServerUrl;
176
+ }
177
+
178
+ return authUrl;
179
+ })();
180
+
181
+ const referrerUrl = readQueryParamOrRestoreFromSessionStorage({
182
+ name: "referrer_uri",
183
+ });
113
184
 
114
185
  const environment = {
115
- serverBaseUrl: kcContext.serverBaseUrl,
116
- authUrl: kcContext.authUrl,
117
- authServerUrl: kcContext.authServerUrl,
186
+ serverBaseUrl,
187
+ authUrl,
188
+ authServerUrl,
118
189
  realm: kcContext.realm.name,
119
- clientId: kcContext.clientId,
190
+ clientId,
120
191
  resourceUrl,
121
- logo: logoUrl.substring(resourceUrl.length),
122
- logoUrl: logoUrl,
192
+ logo: logoUrl,
193
+ logoUrl:
194
+ referrerUrl === undefined ? "/" : referrerUrl.replace("_hash_", "#"),
123
195
  baseUrl: `${kcContext.baseUrl.scheme}:${kcContext.baseUrl.rawSchemeSpecificPart}`,
124
196
  locale: kcContext.locale,
125
197
  referrerName:
126
198
  readQueryParamOrRestoreFromSessionStorage({ name: "referrer" }) ?? "",
127
- referrerUrl:
128
- readQueryParamOrRestoreFromSessionStorage({ name: "referrer_uri" }) ?? "",
199
+ referrerUrl: referrerUrl ?? "",
129
200
  features: {
130
201
  isRegistrationEmailAsUsername:
131
202
  kcContext.realm.registrationEmailAsUsername,
@@ -139,8 +210,13 @@ function init(
139
210
  deleteAccountAllowed: kcContext.deleteAccountAllowed,
140
211
  updateEmailFeatureEnabled: kcContext.updateEmailFeatureEnabled,
141
212
  updateEmailActionEnabled: kcContext.updateEmailActionEnabled,
142
- isViewGroupsEnabled: kcContext.isViewGroupsEnabled,
143
- isOid4VciEnabled: kcContext.isOid4VciEnabled,
213
+ isViewGroupsEnabled:
214
+ "isViewGroupsEnabled" in kcContext
215
+ ? kcContext.isViewGroupsEnabled
216
+ : false,
217
+ isOid4VciEnabled: getIsKeycloak25AndUp(kcContext)
218
+ ? kcContext.isOid4VciEnabled
219
+ : false,
144
220
  },
145
221
  };
146
222
 
@@ -155,19 +231,193 @@ function init(
155
231
  document.body.appendChild(script);
156
232
  }
157
233
 
158
- const realFetch = window.fetch;
234
+ {
235
+ const realFetch = window.fetch;
236
+
237
+ const buildJsonResponse = (json: unknown): Response => {
238
+ const response = {
239
+ headers: new Headers({ "Content-Type": "application/json" }),
240
+ ok: true,
241
+ json: () => Promise.resolve(json),
242
+ text: () => Promise.resolve(JSON.stringify(json)),
243
+ status: 200,
244
+ } as Response;
159
245
 
160
- window.fetch = async function fetch(...args) {
161
- const [url] = args;
246
+ /*
247
+ return new Proxy(response, {
248
+ get(target, prop, receiver) {
249
+ console.log(`GET ${String(prop)}`);
250
+ return Reflect.get(target, prop, receiver);
251
+ },
252
+ });
253
+ */
254
+ return response;
255
+ };
256
+
257
+ let isLanguageChangeEventListened = false;
258
+ let wasLocaleAttributeManuallyAdded = false;
259
+
260
+ window.fetch = async function fetch(...args) {
261
+ const [url, fetchOptions] = args;
262
+
263
+ polyfill_i18n_api: {
264
+ if (getIsKeycloak25AndUp(kcContext)) {
265
+ break polyfill_i18n_api;
266
+ }
267
+ //assert(is<KcContextLike.Keycloak20To24>(kcContext));
162
268
 
163
- if (url === joinPath(environment.resourceUrl, "/content.json")) {
164
- return {
165
- json: () => Promise.resolve(content),
166
- } as Response;
167
- }
269
+ const langs =
270
+ kcContext.supportedLocales === undefined
271
+ ? ["en"]
272
+ : Object.keys(kcContext.supportedLocales);
168
273
 
169
- return realFetch(...args);
170
- };
274
+ if (`${url}`.endsWith("/supportedLocales")) {
275
+ return buildJsonResponse(langs);
276
+ }
277
+
278
+ for (const lang of langs) {
279
+ if (!`${url}`.endsWith(`/${lang}`)) {
280
+ continue;
281
+ }
282
+
283
+ const data = Object.entries(
284
+ JSON.parse(kcContext.msgJSON) as Record<string, string>,
285
+ ).map(([key, value]) => {
286
+ try {
287
+ value = decodeURIComponent(escape(value));
288
+ } catch {
289
+ // ignore
290
+ }
291
+
292
+ return { key, value };
293
+ });
294
+
295
+ track_language_change: {
296
+ if (isLanguageChangeEventListened) {
297
+ break track_language_change;
298
+ }
299
+ isLanguageChangeEventListened = true;
300
+
301
+ getI18n().on("languageChanged", (lang) => {
302
+ if (lang !== kcContext.locale) {
303
+ window.location.reload();
304
+ }
305
+ });
306
+ }
307
+
308
+ return buildJsonResponse(data);
309
+ }
310
+
311
+ const urlObj = new URL(
312
+ (() => {
313
+ const urlStr = `${url}`;
314
+
315
+ return urlStr.startsWith("/")
316
+ ? `${window.location.origin}${urlStr}`
317
+ : urlStr;
318
+ })(),
319
+ );
320
+
321
+ add_locale_attribute: {
322
+ if (!environment.features.isInternationalizationEnabled) {
323
+ break add_locale_attribute;
324
+ }
325
+
326
+ if ((fetchOptions?.method?.toLocaleLowerCase() ?? "get") !== "get") {
327
+ break add_locale_attribute;
328
+ }
329
+
330
+ if (!urlObj.pathname.replace(/\/$/, "").endsWith("/account")) {
331
+ break add_locale_attribute;
332
+ }
333
+
334
+ if (urlObj.searchParams.get("userProfileMetadata") !== "true") {
335
+ break add_locale_attribute;
336
+ }
337
+
338
+ const response = await realFetch(...args);
339
+
340
+ if (!response.ok) {
341
+ return response;
342
+ }
343
+
344
+ const data = await response.json();
345
+
346
+ data.attributes ??= {};
347
+
348
+ data.attributes.locale = [kcContext.locale];
349
+
350
+ data.userProfileMetadata ??= {};
351
+ data.userProfileMetadata.attributes ??= [];
352
+
353
+ if (
354
+ !data.userProfileMetadata.attributes.find(
355
+ (attribute: any) => attribute.name === "locale",
356
+ )
357
+ ) {
358
+ wasLocaleAttributeManuallyAdded = true;
359
+ data.userProfileMetadata.attributes.unshift({
360
+ name: "locale",
361
+ displayName: "locale",
362
+ required: false,
363
+ readOnly: false,
364
+ validators: {},
365
+ multivalued: false,
366
+ });
367
+ }
368
+
369
+ return buildJsonResponse(data);
370
+ }
371
+
372
+ remove_locale_attribute_from_req: {
373
+ if (!wasLocaleAttributeManuallyAdded) {
374
+ break remove_locale_attribute_from_req;
375
+ }
376
+
377
+ if ((fetchOptions?.method?.toLocaleLowerCase() ?? "get") !== "post") {
378
+ break remove_locale_attribute_from_req;
379
+ }
380
+
381
+ if (!urlObj.pathname.replace(/\/$/, "").endsWith("/account")) {
382
+ break remove_locale_attribute_from_req;
383
+ }
384
+
385
+ if (fetchOptions?.body === undefined) {
386
+ break remove_locale_attribute_from_req;
387
+ }
388
+
389
+ let reqPayload: any;
390
+
391
+ try {
392
+ reqPayload = JSON.parse(fetchOptions.body as string);
393
+ } catch {
394
+ break remove_locale_attribute_from_req;
395
+ }
396
+
397
+ if (reqPayload.userProfileMetadata === undefined) {
398
+ break remove_locale_attribute_from_req;
399
+ }
400
+
401
+ reqPayload.userProfileMetadata.attributes =
402
+ reqPayload.userProfileMetadata.attributes.filter(
403
+ (attr: any) => attr.name !== "locale",
404
+ );
405
+
406
+ fetchOptions.body = JSON.stringify(reqPayload);
407
+
408
+ args[1] = fetchOptions;
409
+
410
+ return realFetch(...args);
411
+ }
412
+ }
413
+
414
+ if (url === joinPath(environment.resourceUrl, "/content.json")) {
415
+ return buildJsonResponse(content);
416
+ }
417
+
418
+ return realFetch(...args);
419
+ };
420
+ }
171
421
  }
172
422
 
173
423
  function readQueryParamOrRestoreFromSessionStorage(params: {
package/src/i18n.ts CHANGED
@@ -22,7 +22,9 @@ export const keycloakLanguageDetector: LanguageDetectorModule = {
22
22
  },
23
23
  };
24
24
 
25
- export const i18n = createInstance({
25
+ export function initI18n() { return i18n.init(); }
26
+
27
+ const i18n = createInstance({
26
28
  fallbackLng: DEFAULT_LOCALE,
27
29
  interpolation: {
28
30
  escapeValue: false,
@@ -1,3 +1,4 @@
1
+ import { getI18n } from "react-i18next";
1
2
  import {
2
3
  UserProfileFields,
3
4
  beerify,
@@ -31,7 +32,7 @@ import {
31
32
  } from "@keycloakify/keycloak-account-ui/api/representations";
32
33
  import { Page } from "@keycloakify/keycloak-account-ui/components/page/Page";
33
34
  import type { Environment } from "@keycloakify/keycloak-account-ui/environment";
34
- import { TFuncKey, i18n } from "@keycloakify/keycloak-account-ui/i18n";
35
+ import { TFuncKey } from "@keycloakify/keycloak-account-ui/i18n";
35
36
  import { usePromise } from "@keycloakify/keycloak-account-ui/utils/usePromise";
36
37
 
37
38
  export const PersonalInfo = () => {
@@ -70,7 +71,7 @@ export const PersonalInfo = () => {
70
71
  );
71
72
  await savePersonalInfo(context, { ...user, attributes });
72
73
  const locale = attributes["locale"]?.toString();
73
- i18n.changeLanguage(locale, (error) => {
74
+ getI18n().changeLanguage(locale, (error) => {
74
75
  if (error) {
75
76
  console.warn("Error(s) loading locale", locale, error);
76
77
  }
@@ -52,7 +52,7 @@ export const Header = () => {
52
52
  showNavToggle
53
53
  brand={{
54
54
  href: indexHref,
55
- src: joinPath(environment.resourceUrl, brandImage),
55
+ src: /https?:/.test(brandImage) || brandImage.startsWith("data:") || brandImage.startsWith("/") ? brandImage : joinPath(environment.resourceUrl, brandImage),
56
56
  alt: t("logo"),
57
57
  className: style.brand,
58
58
  }}
@@ -1,4 +1,5 @@
1
- import { i18n } from "@keycloakify/keycloak-account-ui/i18n";
1
+ import { getI18n } from "react-i18next";
2
+ import { } from "@keycloakify/keycloak-account-ui/i18n";
2
3
 
3
4
  export const FORMAT_DATE_ONLY: Intl.DateTimeFormatOptions = {
4
5
  dateStyle: "long",
@@ -14,5 +15,5 @@ export const FORMAT_DATE_AND_TIME: Intl.DateTimeFormatOptions = {
14
15
  };
15
16
 
16
17
  export function formatDate(date: Date, options = FORMAT_DATE_AND_TIME) {
17
- return date.toLocaleString(i18n.languages, options);
18
+ return date.toLocaleString(getI18n().languages, options);
18
19
  }