keycloakify 11.8.51 → 11.8.52

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.
@@ -5,10 +5,24 @@ export default function FrontchannelLogout(props) {
5
5
  const { logout } = kcContext;
6
6
  const { msg, msgStr } = i18n;
7
7
  useEffect(() => {
8
- if (logout.logoutRedirectUri) {
9
- window.location.replace(logout.logoutRedirectUri);
8
+ const { logoutRedirectUri } = logout;
9
+ if (logoutRedirectUri === undefined) {
10
+ return;
10
11
  }
12
+ if (document.readyState === "complete") {
13
+ window.location.replace(logoutRedirectUri);
14
+ return;
15
+ }
16
+ const onReadystatechange = () => {
17
+ if (document.readyState === "complete") {
18
+ window.location.replace(logoutRedirectUri);
19
+ }
20
+ };
21
+ document.addEventListener("readystatechange", onReadystatechange);
22
+ return () => {
23
+ document.removeEventListener("readystatechange", onReadystatechange);
24
+ };
11
25
  }, []);
12
- return (_jsxs(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, documentTitle: msgStr("frontchannel-logout.title"), headerNode: msg("frontchannel-logout.title") }, { children: [_jsx("p", { children: msg("frontchannel-logout.message") }), _jsx("ul", { children: logout.clients.map(client => (_jsxs("li", { children: [client.name, _jsx("iframe", { src: client.frontChannelLogoutUrl, style: { display: "none" } })] }, client.name))) }), logout.logoutRedirectUri && (_jsx("a", Object.assign({ id: "continue", className: "btn btn-primary", href: logout.logoutRedirectUri }, { children: msg("doContinue") })))] })));
26
+ return (_jsxs(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, documentTitle: msgStr("frontchannel-logout.title"), headerNode: msg("frontchannel-logout.title") }, { children: [_jsx("p", { children: msg("frontchannel-logout.message") }), _jsx("ul", { children: logout.clients.map(client => (_jsxs("li", { children: [client.name, _jsx("iframe", { src: client.frontChannelLogoutUrl, style: { display: "none" } })] }, client.name))) }), logout.logoutRedirectUri !== undefined && (_jsx("a", Object.assign({ id: "continue", className: "btn btn-primary", href: logout.logoutRedirectUri }, { children: msg("doContinue") })))] })));
13
27
  }
14
28
  //# sourceMappingURL=FrontchannelLogout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FrontchannelLogout.js","sourceRoot":"","sources":["../../src/login/pages/FrontchannelLogout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAiF;IACxH,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE7B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,MAAM,CAAC,iBAAiB,EAAE;YAC1B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SACrD;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,MAAC,QAAQ,kBACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,CAAC,2BAA2B,CAAC,EAClD,UAAU,EAAE,GAAG,CAAC,2BAA2B,CAAC,iBAE5C,sBAAI,GAAG,CAAC,6BAA6B,CAAC,GAAK,EAC3C,uBACK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAC1B,yBACK,MAAM,CAAC,IAAI,EACZ,iBAAQ,GAAG,EAAE,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,KAFpE,MAAM,CAAC,IAAI,CAGf,CACR,CAAC,GACD,EACJ,MAAM,CAAC,iBAAiB,IAAI,CACzB,0BAAG,EAAE,EAAC,UAAU,EAAC,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAE,MAAM,CAAC,iBAAiB,gBACtE,GAAG,CAAC,YAAY,CAAC,IAClB,CACP,KACM,CACd,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"FrontchannelLogout.js","sourceRoot":"","sources":["../../src/login/pages/FrontchannelLogout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,KAAiF;IACxH,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE7B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;QAErC,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACjC,OAAO;SACV;QAED,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;YACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC3C,OAAO;SACV;QAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;YAC5B,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;gBACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;aAC9C;QACL,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QAElE,OAAO,GAAG,EAAE;YACR,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QACzE,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,MAAC,QAAQ,kBACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,CAAC,2BAA2B,CAAC,EAClD,UAAU,EAAE,GAAG,CAAC,2BAA2B,CAAC,iBAE5C,sBAAI,GAAG,CAAC,6BAA6B,CAAC,GAAK,EAC3C,uBACK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAC1B,yBACK,MAAM,CAAC,IAAI,EACZ,iBAAQ,GAAG,EAAE,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,KAFpE,MAAM,CAAC,IAAI,CAGf,CACR,CAAC,GACD,EACJ,MAAM,CAAC,iBAAiB,KAAK,SAAS,IAAI,CACvC,0BAAG,EAAE,EAAC,UAAU,EAAC,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAE,MAAM,CAAC,iBAAiB,gBACtE,GAAG,CAAC,YAAY,CAAC,IAClB,CACP,KACM,CACd,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keycloakify",
3
- "version": "11.8.51",
3
+ "version": "11.8.52",
4
4
  "description": "Framework to create custom Keycloak UIs",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11,9 +11,28 @@ export default function FrontchannelLogout(props: PageProps<Extract<KcContext, {
11
11
  const { msg, msgStr } = i18n;
12
12
 
13
13
  useEffect(() => {
14
- if (logout.logoutRedirectUri) {
15
- window.location.replace(logout.logoutRedirectUri);
14
+ const { logoutRedirectUri } = logout;
15
+
16
+ if (logoutRedirectUri === undefined) {
17
+ return;
18
+ }
19
+
20
+ if (document.readyState === "complete") {
21
+ window.location.replace(logoutRedirectUri);
22
+ return;
16
23
  }
24
+
25
+ const onReadystatechange = () => {
26
+ if (document.readyState === "complete") {
27
+ window.location.replace(logoutRedirectUri);
28
+ }
29
+ };
30
+
31
+ document.addEventListener("readystatechange", onReadystatechange);
32
+
33
+ return () => {
34
+ document.removeEventListener("readystatechange", onReadystatechange);
35
+ };
17
36
  }, []);
18
37
 
19
38
  return (
@@ -34,7 +53,7 @@ export default function FrontchannelLogout(props: PageProps<Extract<KcContext, {
34
53
  </li>
35
54
  ))}
36
55
  </ul>
37
- {logout.logoutRedirectUri && (
56
+ {logout.logoutRedirectUri !== undefined && (
38
57
  <a id="continue" className="btn btn-primary" href={logout.logoutRedirectUri}>
39
58
  {msg("doContinue")}
40
59
  </a>