keycloakify 4.3.0 → 4.4.0
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/CHANGELOG.md +8 -0
- package/README.md +3 -6
- package/bin/build-keycloak-theme/generateFtl/generateFtl.d.ts +1 -1
- package/bin/build-keycloak-theme/generateFtl/generateFtl.js +1 -0
- package/bin/build-keycloak-theme/generateFtl/generateFtl.js.map +1 -1
- package/lib/components/KcApp.js +3 -0
- package/lib/components/KcApp.js.map +1 -1
- package/lib/components/LoginPageExpired.d.ts +6 -0
- package/lib/components/LoginPageExpired.js +36 -0
- package/lib/components/LoginPageExpired.js.map +1 -0
- package/lib/getKcContext/KcContextBase.d.ts +4 -1
- package/lib/getKcContext/KcContextBase.js.map +1 -1
- package/package.json +5 -1
- package/src/bin/build-keycloak-theme/generateFtl/generateFtl.ts +1 -0
- package/src/lib/components/KcApp.tsx +3 -0
- package/src/lib/components/LoginPageExpired.tsx +36 -0
- package/src/lib/getKcContext/KcContextBase.ts +6 -1
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## **4.4.0** (2022-01-01)
|
2
|
+
|
3
|
+
- Merge pull request #73 from lazToum/main
|
4
|
+
|
5
|
+
(feature) added login-page-expired.ftl
|
6
|
+
- added login-page-expired.ftl
|
7
|
+
- Add update instruction for 4.3.0
|
8
|
+
|
1
9
|
## **4.3.0** (2021-12-27)
|
2
10
|
|
3
11
|
- Merge pull request #72 from praiz/main
|
package/README.md
CHANGED
@@ -30,8 +30,6 @@
|
|
30
30
|
<img src="https://user-images.githubusercontent.com/6702424/110260457-a1c3d380-7fac-11eb-853a-80459b65626b.png">
|
31
31
|
</p>
|
32
32
|
|
33
|
-
> **New in v4.3.0**: Feature [`login-update-password.ftl`](https://github.com/InseeFrLab/keycloakify/pull/72)
|
34
|
-
|
35
33
|
# Motivations
|
36
34
|
|
37
35
|
Keycloak provides [theme support](https://www.keycloak.org/docs/latest/server_development/#_themes) for web pages. This allows customizing the look and feel of end-user facing pages so they can be integrated with your applications.
|
@@ -87,7 +85,6 @@ If you already have a Keycloak custom theme, it can be easily ported to Keycloak
|
|
87
85
|
- [Adding custom message (to `i18n/useKcMessage.tsx`)](#adding-custom-message-to-i18nusekcmessagetsx)
|
88
86
|
- [Email domain whitelist](#email-domain-whitelist)
|
89
87
|
- [Changelog highlights](#changelog-highlights)
|
90
|
-
- [v4.3](#v43)
|
91
88
|
- [v4](#v4)
|
92
89
|
- [v3](#v3)
|
93
90
|
- [v2.5](#v25)
|
@@ -478,9 +475,9 @@ and `kcRegisterContext["authorizedMailDomains"]` to validate on.
|
|
478
475
|
|
479
476
|
# Changelog highlights
|
480
477
|
|
481
|
-
|
482
|
-
|
483
|
-
|
478
|
+
> **New in v4.3.0**: Feature [`login-update-password.ftl`](https://user-images.githubusercontent.com/6702424/147517600-6191cf72-93dd-437b-a35c-47180142063e.png).
|
479
|
+
> Every time a page is added it's a breaking change for non CSS-only theme.
|
480
|
+
> Change [this](https://github.com/garronej/keycloakify-demo-app/blob/df664c13c77ce3c53ac7df0622d94d04e76d3f9f/src/KcApp/KcApp.tsx#L17) and [this](https://github.com/garronej/keycloakify-demo-app/blob/df664c13c77ce3c53ac7df0622d94d04e76d3f9f/src/KcApp/KcApp.tsx#L37) to update.
|
484
481
|
|
485
482
|
## v4
|
486
483
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export declare const pageIds: readonly ["login.ftl", "register.ftl", "register-user-profile.ftl", "info.ftl", "error.ftl", "login-reset-password.ftl", "login-verify-email.ftl", "terms.ftl", "login-otp.ftl", "login-update-profile.ftl", "login-update-password.ftl", "login-idp-link-confirm.ftl"];
|
1
|
+
export declare const pageIds: readonly ["login.ftl", "register.ftl", "register-user-profile.ftl", "info.ftl", "error.ftl", "login-reset-password.ftl", "login-verify-email.ftl", "terms.ftl", "login-otp.ftl", "login-update-profile.ftl", "login-update-password.ftl", "login-idp-link-confirm.ftl", "login-page-expired.ftl"];
|
2
2
|
export declare type PageId = typeof pageIds[number];
|
3
3
|
export declare function generateFtlFilesCodeFactory(params: {
|
4
4
|
cssGlobalsToDefine: Record<string, string>;
|
@@ -59,6 +59,7 @@ exports.pageIds = [
|
|
59
59
|
"login-update-profile.ftl",
|
60
60
|
"login-update-password.ftl",
|
61
61
|
"login-idp-link-confirm.ftl",
|
62
|
+
"login-page-expired.ftl",
|
62
63
|
];
|
63
64
|
function generateFtlFilesCodeFactory(params) {
|
64
65
|
var cssGlobalsToDefine = params.cssGlobalsToDefine, indexHtmlCode = params.indexHtmlCode, urlPathname = params.urlPathname, urlOrigin = params.urlOrigin;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"generateFtl.js","sourceRoot":"","sources":["../../../src/bin/build-keycloak-theme/generateFtl/generateFtl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA8B;AAC9B,sEAA6I;AAC7I,0CAAoB;AACpB,6BAAwC;AACxC,+CAA8C;AAC9C,8DAA6D;AAEhD,QAAA,OAAO,GAAG;IACnB,WAAW;IACX,cAAc;IACd,2BAA2B;IAC3B,UAAU;IACV,WAAW;IACX,0BAA0B;IAC1B,wBAAwB;IACxB,WAAW;IACX,eAAe;IACf,0BAA0B;IAC1B,2BAA2B;IAC3B,4BAA4B;
|
1
|
+
{"version":3,"file":"generateFtl.js","sourceRoot":"","sources":["../../../src/bin/build-keycloak-theme/generateFtl/generateFtl.ts"],"names":[],"mappings":"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"}
|
package/lib/components/KcApp.js
CHANGED
@@ -37,6 +37,7 @@ var LoginOtp_1 = require("./LoginOtp");
|
|
37
37
|
var LoginUpdatePassword_1 = require("./LoginUpdatePassword");
|
38
38
|
var LoginUpdateProfile_1 = require("./LoginUpdateProfile");
|
39
39
|
var LoginIdpLinkConfirm_1 = require("./LoginIdpLinkConfirm");
|
40
|
+
var LoginPageExpired_1 = require("./LoginPageExpired");
|
40
41
|
exports.KcApp = (0, react_1.memo)(function (_a) {
|
41
42
|
var kcContext = _a.kcContext, props = __rest(_a, ["kcContext"]);
|
42
43
|
switch (kcContext.pageId) {
|
@@ -64,6 +65,8 @@ exports.KcApp = (0, react_1.memo)(function (_a) {
|
|
64
65
|
return (0, jsx_runtime_1.jsx)(LoginUpdateProfile_1.LoginUpdateProfile, __assign({}, __assign({ kcContext: kcContext }, props)), void 0);
|
65
66
|
case "login-idp-link-confirm.ftl":
|
66
67
|
return (0, jsx_runtime_1.jsx)(LoginIdpLinkConfirm_1.LoginIdpLinkConfirm, __assign({}, __assign({ kcContext: kcContext }, props)), void 0);
|
68
|
+
case "login-page-expired.ftl":
|
69
|
+
return (0, jsx_runtime_1.jsx)(LoginPageExpired_1.LoginPageExpired, __assign({}, __assign({ kcContext: kcContext }, props)), void 0);
|
67
70
|
}
|
68
71
|
});
|
69
72
|
//# sourceMappingURL=KcApp.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"KcApp.js","sourceRoot":"","sources":["../../src/lib/components/KcApp.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAG7B,iCAAgC;AAChC,uCAAsC;AACtC,6DAA4D;AAC5D,+BAA8B;AAC9B,iCAAgC;AAChC,2DAA0D;AAC1D,uDAAsD;AACtD,iCAAgC;AAChC,uCAAsC;AACtC,6DAA4D;AAC5D,2DAA0D;AAC1D,6DAA4D;
|
1
|
+
{"version":3,"file":"KcApp.js","sourceRoot":"","sources":["../../src/lib/components/KcApp.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAG7B,iCAAgC;AAChC,uCAAsC;AACtC,6DAA4D;AAC5D,+BAA8B;AAC9B,iCAAgC;AAChC,2DAA0D;AAC1D,uDAAsD;AACtD,iCAAgC;AAChC,uCAAsC;AACtC,6DAA4D;AAC5D,2DAA0D;AAC1D,6DAA4D;AAC5D,uDAAsD;AAEzC,QAAA,KAAK,GAAG,IAAA,YAAI,EAAC,UAAC,EAA+D;IAA7D,IAAA,SAAS,eAAA,EAAK,KAAK,cAArB,aAAuB,CAAF;IAC5C,QAAQ,SAAS,CAAC,MAAM,EAAE;QACtB,KAAK,WAAW;YACZ,OAAO,uBAAC,aAAK,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QAClD,KAAK,cAAc;YACf,OAAO,uBAAC,mBAAQ,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QACrD,KAAK,2BAA2B;YAC5B,OAAO,uBAAC,yCAAmB,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QAChE,KAAK,UAAU;YACX,OAAO,uBAAC,WAAI,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QACjD,KAAK,WAAW;YACZ,OAAO,uBAAC,aAAK,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QAClD,KAAK,0BAA0B;YAC3B,OAAO,uBAAC,uCAAkB,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QAC/D,KAAK,wBAAwB;YACzB,OAAO,uBAAC,mCAAgB,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QAC7D,KAAK,WAAW;YACZ,OAAO,uBAAC,aAAK,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QAClD,KAAK,eAAe;YAChB,OAAO,uBAAC,mBAAQ,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QACrD,KAAK,2BAA2B;YAC5B,OAAO,uBAAC,yCAAmB,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QAChE,KAAK,0BAA0B;YAC3B,OAAO,uBAAC,uCAAkB,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QAC/D,KAAK,4BAA4B;YAC7B,OAAO,uBAAC,yCAAmB,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;QAChE,KAAK,wBAAwB;YACzB,OAAO,uBAAC,mCAAgB,0BAAO,SAAS,WAAA,IAAK,KAAK,WAAM,CAAC;KAChE;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import type { KcProps } from "./KcProps";
|
3
|
+
import type { KcContextBase } from "../getKcContext/KcContextBase";
|
4
|
+
export declare const LoginPageExpired: import("react").MemoExoticComponent<({ kcContext, ...props }: {
|
5
|
+
kcContext: KcContextBase.LoginPageExpired;
|
6
|
+
} & KcProps) => JSX.Element>;
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
14
|
+
var t = {};
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
16
|
+
t[p] = s[p];
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
20
|
+
t[p[i]] = s[p[i]];
|
21
|
+
}
|
22
|
+
return t;
|
23
|
+
};
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
25
|
+
exports.LoginPageExpired = void 0;
|
26
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
27
|
+
var react_1 = require("react");
|
28
|
+
var Template_1 = require("./Template");
|
29
|
+
var useKcMessage_1 = require("../i18n/useKcMessage");
|
30
|
+
exports.LoginPageExpired = (0, react_1.memo)(function (_a) {
|
31
|
+
var kcContext = _a.kcContext, props = __rest(_a, ["kcContext"]);
|
32
|
+
var url = kcContext.url;
|
33
|
+
var msg = (0, useKcMessage_1.useKcMessage)().msg;
|
34
|
+
return ((0, jsx_runtime_1.jsx)(Template_1.Template, __assign({}, __assign({ kcContext: kcContext }, props), { doFetchDefaultThemeResources: true, displayMessage: false, headerNode: msg("pageExpiredTitle"), formNode: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)("p", __assign({ id: "instruction1", className: "instruction" }, { children: [msg("pageExpiredMsg1"), (0, jsx_runtime_1.jsx)("a", __assign({ id: "loginRestartLink", href: url.loginRestartFlowUrl }, { children: msg("doClickHere") }), void 0), " ", ".", (0, jsx_runtime_1.jsx)("br", {}, void 0), msg("pageExpiredMsg2"), " ", (0, jsx_runtime_1.jsx)("a", __assign({ id: "loginContinueLink", href: url.loginAction }, { children: msg("doClickHere") }), void 0), " ", "."] }), void 0) }, void 0) }), void 0));
|
35
|
+
});
|
36
|
+
//# sourceMappingURL=LoginPageExpired.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"LoginPageExpired.js","sourceRoot":"","sources":["../../src/lib/components/LoginPageExpired.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA6B;AAC7B,uCAAsC;AAGtC,qDAAoD;AAEvC,QAAA,gBAAgB,GAAG,IAAA,YAAI,EAAC,UAAC,EAAgF;IAA9E,IAAA,SAAS,eAAA,EAAK,KAAK,cAArB,aAAuB,CAAF;IAC/C,IAAA,GAAG,GAAK,SAAS,IAAd,CAAe;IAElB,IAAA,GAAG,GAAK,IAAA,2BAAY,GAAE,IAAnB,CAAoB;IAE/B,OAAO,CACH,uBAAC,mBAAQ,0BACC,SAAS,WAAA,IAAK,KAAK,KACzB,4BAA4B,EAAE,IAAI,EAClC,cAAc,EAAE,KAAK,EACrB,UAAU,EAAE,GAAG,CAAC,kBAAkB,CAAC,EACnC,QAAQ,EACJ,2DACI,wCAAG,EAAE,EAAC,cAAc,EAAC,SAAS,EAAC,aAAa,iBACvC,GAAG,CAAC,iBAAiB,CAAC,EACvB,uCAAG,EAAE,EAAC,kBAAkB,EAAC,IAAI,EAAE,GAAG,CAAC,mBAAmB,gBACjD,GAAG,CAAC,aAAa,CAAC,YACnB,EAAC,GAAG,OACP,wCAAM,EACN,GAAG,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAC5B,uCAAG,EAAE,EAAC,mBAAmB,EAAC,IAAI,EAAE,GAAG,CAAC,WAAW,gBAC1C,GAAG,CAAC,aAAa,CAAC,YACnB,EAAC,GAAG,kBAER,WACL,YAET,CACL,CAAC;AACN,CAAC,CAAC,CAAC"}
|
@@ -6,7 +6,7 @@ declare type ExtractAfterStartingWith<Prefix extends string, StrEnum> = StrEnum
|
|
6
6
|
* Some values might be undefined on some pages.
|
7
7
|
* (ex: url.loginAction is undefined on error.ftl)
|
8
8
|
*/
|
9
|
-
export declare type KcContextBase = KcContextBase.Login | KcContextBase.Register | KcContextBase.RegisterUserProfile | KcContextBase.Info | KcContextBase.Error | KcContextBase.LoginResetPassword | KcContextBase.LoginVerifyEmail | KcContextBase.Terms | KcContextBase.LoginOtp | KcContextBase.LoginUpdatePassword | KcContextBase.LoginUpdateProfile | KcContextBase.LoginIdpLinkConfirm;
|
9
|
+
export declare type KcContextBase = KcContextBase.Login | KcContextBase.Register | KcContextBase.RegisterUserProfile | KcContextBase.Info | KcContextBase.Error | KcContextBase.LoginResetPassword | KcContextBase.LoginVerifyEmail | KcContextBase.Terms | KcContextBase.LoginOtp | KcContextBase.LoginUpdatePassword | KcContextBase.LoginUpdateProfile | KcContextBase.LoginIdpLinkConfirm | KcContextBase.LoginPageExpired;
|
10
10
|
export declare namespace KcContextBase {
|
11
11
|
type Common = {
|
12
12
|
url: {
|
@@ -181,6 +181,9 @@ export declare namespace KcContextBase {
|
|
181
181
|
pageId: "login-idp-link-confirm.ftl";
|
182
182
|
idpAlias: string;
|
183
183
|
};
|
184
|
+
type LoginPageExpired = Common & {
|
185
|
+
pageId: "login-page-expired.ftl";
|
186
|
+
};
|
184
187
|
}
|
185
188
|
export declare type Attribute = {
|
186
189
|
name: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"KcContextBase.js","sourceRoot":"","sources":["../../src/lib/getKcContext/KcContextBase.ts"],"names":[],"mappings":";;AAEA,uCAAsC;
|
1
|
+
{"version":3,"file":"KcContextBase.js","sourceRoot":"","sources":["../../src/lib/getKcContext/KcContextBase.ts"],"names":[],"mappings":";;AAEA,uCAAsC;AA6UtC,IAAA,eAAM,GAA2C,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "keycloakify",
|
3
|
-
"version": "4.
|
3
|
+
"version": "4.4.0",
|
4
4
|
"description": "Keycloak theme generator for Reacts app",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -56,6 +56,7 @@
|
|
56
56
|
"src/lib/components/Login.tsx",
|
57
57
|
"src/lib/components/LoginIdpLinkConfirm.tsx",
|
58
58
|
"src/lib/components/LoginOtp.tsx",
|
59
|
+
"src/lib/components/LoginPageExpired.tsx",
|
59
60
|
"src/lib/components/LoginResetPassword.tsx",
|
60
61
|
"src/lib/components/LoginUpdatePassword.tsx",
|
61
62
|
"src/lib/components/LoginUpdateProfile.tsx",
|
@@ -185,6 +186,9 @@
|
|
185
186
|
"lib/components/LoginOtp.d.ts",
|
186
187
|
"lib/components/LoginOtp.js",
|
187
188
|
"lib/components/LoginOtp.js.map",
|
189
|
+
"lib/components/LoginPageExpired.d.ts",
|
190
|
+
"lib/components/LoginPageExpired.js",
|
191
|
+
"lib/components/LoginPageExpired.js.map",
|
188
192
|
"lib/components/LoginResetPassword.d.ts",
|
189
193
|
"lib/components/LoginResetPassword.js",
|
190
194
|
"lib/components/LoginResetPassword.js.map",
|
@@ -13,6 +13,7 @@ import { LoginOtp } from "./LoginOtp";
|
|
13
13
|
import { LoginUpdatePassword } from "./LoginUpdatePassword";
|
14
14
|
import { LoginUpdateProfile } from "./LoginUpdateProfile";
|
15
15
|
import { LoginIdpLinkConfirm } from "./LoginIdpLinkConfirm";
|
16
|
+
import { LoginPageExpired } from "./LoginPageExpired";
|
16
17
|
|
17
18
|
export const KcApp = memo(({ kcContext, ...props }: { kcContext: KcContextBase } & KcProps) => {
|
18
19
|
switch (kcContext.pageId) {
|
@@ -40,5 +41,7 @@ export const KcApp = memo(({ kcContext, ...props }: { kcContext: KcContextBase }
|
|
40
41
|
return <LoginUpdateProfile {...{ kcContext, ...props }} />;
|
41
42
|
case "login-idp-link-confirm.ftl":
|
42
43
|
return <LoginIdpLinkConfirm {...{ kcContext, ...props }} />;
|
44
|
+
case "login-page-expired.ftl":
|
45
|
+
return <LoginPageExpired {...{ kcContext, ...props }} />;
|
43
46
|
}
|
44
47
|
});
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { memo } from "react";
|
2
|
+
import { Template } from "./Template";
|
3
|
+
import type { KcProps } from "./KcProps";
|
4
|
+
import type { KcContextBase } from "../getKcContext/KcContextBase";
|
5
|
+
import { useKcMessage } from "../i18n/useKcMessage";
|
6
|
+
|
7
|
+
export const LoginPageExpired = memo(({ kcContext, ...props }: { kcContext: KcContextBase.LoginPageExpired } & KcProps) => {
|
8
|
+
const { url } = kcContext;
|
9
|
+
|
10
|
+
const { msg } = useKcMessage();
|
11
|
+
|
12
|
+
return (
|
13
|
+
<Template
|
14
|
+
{...{ kcContext, ...props }}
|
15
|
+
doFetchDefaultThemeResources={true}
|
16
|
+
displayMessage={false}
|
17
|
+
headerNode={msg("pageExpiredTitle")}
|
18
|
+
formNode={
|
19
|
+
<>
|
20
|
+
<p id="instruction1" className="instruction">
|
21
|
+
{msg("pageExpiredMsg1")}
|
22
|
+
<a id="loginRestartLink" href={url.loginRestartFlowUrl}>
|
23
|
+
{msg("doClickHere")}
|
24
|
+
</a>{" "}
|
25
|
+
.<br />
|
26
|
+
{msg("pageExpiredMsg2")}{" "}
|
27
|
+
<a id="loginContinueLink" href={url.loginAction}>
|
28
|
+
{msg("doClickHere")}
|
29
|
+
</a>{" "}
|
30
|
+
.
|
31
|
+
</p>
|
32
|
+
</>
|
33
|
+
}
|
34
|
+
/>
|
35
|
+
);
|
36
|
+
});
|
@@ -23,7 +23,8 @@ export type KcContextBase =
|
|
23
23
|
| KcContextBase.LoginOtp
|
24
24
|
| KcContextBase.LoginUpdatePassword
|
25
25
|
| KcContextBase.LoginUpdateProfile
|
26
|
-
| KcContextBase.LoginIdpLinkConfirm
|
26
|
+
| KcContextBase.LoginIdpLinkConfirm
|
27
|
+
| KcContextBase.LoginPageExpired;
|
27
28
|
|
28
29
|
export declare namespace KcContextBase {
|
29
30
|
export type Common = {
|
@@ -213,6 +214,10 @@ export declare namespace KcContextBase {
|
|
213
214
|
pageId: "login-idp-link-confirm.ftl";
|
214
215
|
idpAlias: string;
|
215
216
|
};
|
217
|
+
|
218
|
+
export type LoginPageExpired = Common & {
|
219
|
+
pageId: "login-page-expired.ftl";
|
220
|
+
};
|
216
221
|
}
|
217
222
|
|
218
223
|
export type Attribute = {
|