@keycloakify/keycloak-account-ui 25.0.4-rc.2 → 25.0.4-rc.3
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.
- package/KcAccountUi.js +2 -2
- package/KcAccountUi.js.map +1 -1
- package/README.md +6 -6
- package/i18n.d.ts +1 -1
- package/i18n.js +2 -1
- package/i18n.js.map +1 -1
- package/package.json +1 -1
- package/personal-info/PersonalInfo.js +2 -2
- package/personal-info/PersonalInfo.js.map +1 -1
- package/src/KcAccountUi.tsx +2 -2
- package/src/i18n.ts +3 -1
- package/src/personal-info/PersonalInfo.tsx +3 -2
- package/src/utils/formatDate.ts +3 -2
- package/utils/formatDate.js +2 -2
- package/utils/formatDate.js.map +1 -1
package/KcAccountUi.js
CHANGED
|
@@ -3,10 +3,10 @@ import { useEffect, useReducer } from "react";
|
|
|
3
3
|
import "@patternfly/react-core/dist/styles/base.css";
|
|
4
4
|
import "@patternfly/patternfly/patternfly-addons.css";
|
|
5
5
|
import { createBrowserRouter, RouterProvider } from "react-router-dom";
|
|
6
|
-
import {
|
|
6
|
+
import { initI18n } from "./i18n";
|
|
7
7
|
import { routes } from "./routes";
|
|
8
8
|
const router = createBrowserRouter(routes);
|
|
9
|
-
const prI18nInitialized =
|
|
9
|
+
const prI18nInitialized = initI18n();
|
|
10
10
|
export default function KeycloakAccountUi() {
|
|
11
11
|
const [isI18nInitialized, setI18nInitialized] = useReducer(() => true, false);
|
|
12
12
|
useEffect(() => {
|
package/KcAccountUi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KcAccountUi.js","sourceRoot":"","sources":["src/KcAccountUi.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,6CAA6C,CAAC;AACrD,OAAO,8CAA8C,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"KcAccountUi.js","sourceRoot":"","sources":["src/KcAccountUi.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,6CAA6C,CAAC;AACrD,OAAO,8CAA8C,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAEjE,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,iBAAiB,GAAG,QAAQ,EAAE,CAAC;AAErC,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACvC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE9E,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACrD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAC,cAAc,IAAC,MAAM,EAAE,MAAM,GAAI,CAAC;AAC5C,CAAC"}
|
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<a href="https://github.com/keycloakify/keycloak-account-ui/actions">
|
|
9
9
|
<img src="https://github.com/keycloakify/keycloak-account-ui/actions/workflows/ci.yaml/badge.svg?branch=main">
|
|
10
10
|
</a>
|
|
11
|
-
<a href="https://www.npmjs.com/package/@keycloakify/keycloak-account-ui/v/25.0.4-rc.
|
|
11
|
+
<a href="https://www.npmjs.com/package/@keycloakify/keycloak-account-ui/v/25.0.4-rc.3">
|
|
12
12
|
<img src="https://img.shields.io/npm/dm/@keycloakify/keycloak-account-ui">
|
|
13
13
|
</a>
|
|
14
14
|
<p align="center">
|
|
@@ -26,17 +26,17 @@ All credits goes to the keycloak team for the original work. Mainly [@jonkoops
|
|
|
26
26
|
This re-packaged distribution exists to make it possible to take ownership of
|
|
27
27
|
some specific part of the Account UI to create your own custom version of it.
|
|
28
28
|
In straight forward therms it make the Account UI ejectable, you can copy
|
|
29
|
-
past [the source files](https://unpkg.com/browse/@keycloakify/keycloak-account-ui@25.0.4-rc.
|
|
29
|
+
past [the source files](https://unpkg.com/browse/@keycloakify/keycloak-account-ui@25.0.4-rc.3/src/) that you want to modify into your codebase.
|
|
30
30
|
|
|
31
31
|
For more details on integrating this package into your project, refer to the [Keycloakify documentation](https://keycloakify.dev).
|
|
32
32
|
|
|
33
33
|
> **Note:** This package's GitHub repository does not contain any code as it is automatically generated at build time by [scripts/prepare.ts](/scripts/prepare.ts).
|
|
34
|
-
> You can browse the sources includes int the NPM package [here](https://unpkg.com/browse/@keycloakify/keycloak-account-ui@25.0.4-rc.
|
|
34
|
+
> You can browse the sources includes int the NPM package [here](https://unpkg.com/browse/@keycloakify/keycloak-account-ui@25.0.4-rc.3/src/).
|
|
35
35
|
|
|
36
36
|
## Installation
|
|
37
37
|
|
|
38
38
|
> **Note:** This README file is automatically generated at build so the information above are guaranteed to be up to date.
|
|
39
|
-
> You are currently viewing the README of [`@keycloakify/keycloak-account-ui@25.0.4-rc.
|
|
39
|
+
> You are currently viewing the README of [`@keycloakify/keycloak-account-ui@25.0.4-rc.3`](https://www.npmjs.com/package/@keycloakify/keycloak-account-ui/v/25.0.4-rc.3) that
|
|
40
40
|
> mirrors [`@keycloak/keycloak-account-ui@25.0.4`](https://www.npmjs.com/package/@keycloak/keycloak-account-ui/v/25.0.4).
|
|
41
41
|
> It is the version of the Account UI that ships with [**Keycloak 25.0.4**](https://github.com/keycloak/keycloak/tree/25.0.4/js/apps/account-ui).
|
|
42
42
|
|
|
@@ -48,7 +48,7 @@ It's important to respect the exact version range listed here to avoid any compa
|
|
|
48
48
|
```json
|
|
49
49
|
{
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@keycloakify/keycloak-account-ui": "25.0.4-rc.
|
|
51
|
+
"@keycloakify/keycloak-account-ui": "25.0.4-rc.3",
|
|
52
52
|
"@patternfly/patternfly": "^5.3.1",
|
|
53
53
|
"@patternfly/react-core": "^5.3.3",
|
|
54
54
|
"@patternfly/react-icons": "^5.3.2",
|
|
@@ -72,4 +72,4 @@ It's important to respect the exact version range listed here to avoid any compa
|
|
|
72
72
|
## Ejecting
|
|
73
73
|
|
|
74
74
|
You can take partial ownership of some parts of the Account UI by copy pasting the sources files you want to modify into your codebase.
|
|
75
|
-
You can browse the sources files **[here](https://unpkg.com/browse/@keycloakify/keycloak-account-ui@25.0.4-rc.
|
|
75
|
+
You can browse the sources files **[here](https://unpkg.com/browse/@keycloakify/keycloak-account-ui@25.0.4-rc.3/src/)**.
|
package/i18n.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { LanguageDetectorModule } from "i18next";
|
|
2
2
|
export type TFuncKey = any;
|
|
3
3
|
export declare const keycloakLanguageDetector: LanguageDetectorModule;
|
|
4
|
-
export declare
|
|
4
|
+
export declare function initI18n(): Promise<import("i18next").TFunction<"translation", undefined>>;
|
package/i18n.js
CHANGED
|
@@ -10,7 +10,8 @@ export const keycloakLanguageDetector = {
|
|
|
10
10
|
return environment.locale;
|
|
11
11
|
},
|
|
12
12
|
};
|
|
13
|
-
export
|
|
13
|
+
export function initI18n() { return i18n.init(); }
|
|
14
|
+
const i18n = createInstance({
|
|
14
15
|
fallbackLng: DEFAULT_LOCALE,
|
|
15
16
|
interpolation: {
|
|
16
17
|
escapeValue: false,
|
package/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["src/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,cAAc,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,iDAAiD,CAAC;AAE3E,MAAM,cAAc,GAAG,IAAI,CAAC;AAS5B,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC9D,IAAI,EAAE,kBAAkB;IAExB,MAAM;QACJ,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["src/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,cAAc,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,iDAAiD,CAAC;AAE3E,MAAM,cAAc,GAAG,IAAI,CAAC;AAS5B,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC9D,IAAI,EAAE,kBAAkB;IAExB,MAAM;QACJ,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAElD,MAAM,IAAI,GAAG,cAAc,CAAC;IAC1B,WAAW,EAAE,cAAc;IAC3B,aAAa,EAAE;QACb,WAAW,EAAE,KAAK;KACnB;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,QAAQ,CAChB,WAAW,CAAC,aAAa,EACzB,aAAa,WAAW,CAAC,KAAK,kBAAkB,CACjD;QACD,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;CACF,CAAC,CAAC;AAEH,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACtB,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AACnC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getI18n } from "react-i18next";
|
|
2
3
|
import { UserProfileFields, beerify, debeerify, setUserProfileServerError, useAlerts, useEnvironment, } from "../ui-shared";
|
|
3
4
|
import { ActionGroup, Alert, Button, ExpandableSection, Form, Spinner, } from "@patternfly/react-core";
|
|
4
5
|
import { ExternalLinkSquareAltIcon } from "@patternfly/react-icons";
|
|
@@ -7,7 +8,6 @@ import { useForm } from "react-hook-form";
|
|
|
7
8
|
import { useTranslation } from "react-i18next";
|
|
8
9
|
import { getPersonalInfo, getSupportedLocales, savePersonalInfo, } from "../api/methods";
|
|
9
10
|
import { Page } from "../components/page/Page";
|
|
10
|
-
import { i18n } from "../i18n";
|
|
11
11
|
import { usePromise } from "../utils/usePromise";
|
|
12
12
|
export const PersonalInfo = () => {
|
|
13
13
|
const { t } = useTranslation();
|
|
@@ -35,7 +35,7 @@ export const PersonalInfo = () => {
|
|
|
35
35
|
]));
|
|
36
36
|
await savePersonalInfo(context, Object.assign(Object.assign({}, user), { attributes }));
|
|
37
37
|
const locale = (_a = attributes["locale"]) === null || _a === void 0 ? void 0 : _a.toString();
|
|
38
|
-
|
|
38
|
+
getI18n().changeLanguage(locale, (error) => {
|
|
39
39
|
if (error) {
|
|
40
40
|
console.warn("Error(s) loading locale", locale, error);
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersonalInfo.js","sourceRoot":"","sources":["../src/personal-info/PersonalInfo.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,yBAAyB,EACzB,SAAS,EACT,cAAc,GACf,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,WAAW,EACX,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,IAAI,EACJ,OAAO,GACR,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,8CAA8C,CAAC;AAKtD,OAAO,EAAE,IAAI,EAAE,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"PersonalInfo.js","sourceRoot":"","sources":["../src/personal-info/PersonalInfo.tsx"],"names":[],"mappings":"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"}
|
package/src/KcAccountUi.tsx
CHANGED
|
@@ -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 {
|
|
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 =
|
|
11
|
+
const prI18nInitialized = initI18n();
|
|
12
12
|
|
|
13
13
|
export default function KeycloakAccountUi() {
|
|
14
14
|
const [isI18nInitialized, setI18nInitialized] = useReducer(() => true, false);
|
package/src/i18n.ts
CHANGED
|
@@ -22,7 +22,9 @@ export const keycloakLanguageDetector: LanguageDetectorModule = {
|
|
|
22
22
|
},
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
export
|
|
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
|
|
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
|
-
|
|
74
|
+
getI18n().changeLanguage(locale, (error) => {
|
|
74
75
|
if (error) {
|
|
75
76
|
console.warn("Error(s) loading locale", locale, error);
|
|
76
77
|
}
|
package/src/utils/formatDate.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
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(
|
|
18
|
+
return date.toLocaleString(getI18n().languages, options);
|
|
18
19
|
}
|
package/utils/formatDate.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getI18n } from "react-i18next";
|
|
2
2
|
export const FORMAT_DATE_ONLY = {
|
|
3
3
|
dateStyle: "long",
|
|
4
4
|
};
|
|
@@ -7,6 +7,6 @@ export const FORMAT_TIME_ONLY = {
|
|
|
7
7
|
};
|
|
8
8
|
export const FORMAT_DATE_AND_TIME = Object.assign(Object.assign({}, FORMAT_DATE_ONLY), FORMAT_TIME_ONLY);
|
|
9
9
|
export function formatDate(date, options = FORMAT_DATE_AND_TIME) {
|
|
10
|
-
return date.toLocaleString(
|
|
10
|
+
return date.toLocaleString(getI18n().languages, options);
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=formatDate.js.map
|
package/utils/formatDate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatDate.js","sourceRoot":"","sources":["../src/utils/formatDate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"formatDate.js","sourceRoot":"","sources":["../src/utils/formatDate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,SAAS,EAAE,MAAM;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,SAAS,EAAE,OAAO;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,mCAC5B,gBAAgB,GAChB,gBAAgB,CACpB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,OAAO,GAAG,oBAAoB;IACnE,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC"}
|