keycloakify 10.0.0-rc.34 → 10.0.0-rc.36

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.
@@ -8,10 +8,19 @@ export type KcContextLike = {
8
8
  /** Allow to avoid bundling the terms and download it on demand*/
9
9
  export declare function useDownloadTerms(params: {
10
10
  kcContext: KcContextLike;
11
- downloadTermMarkdown: (params: {
11
+ downloadTermsMarkdown: (params: {
12
12
  currentLanguageTag: string;
13
- }) => Promise<string>;
13
+ }) => Promise<{
14
+ termsMarkdown: string;
15
+ termsLanguageTag: string | undefined;
16
+ }>;
14
17
  }): void;
15
18
  export declare function useTermsMarkdown(): {
16
- termsMarkdown: string | undefined;
19
+ isDownloadComplete: false;
20
+ termsMarkdown?: undefined;
21
+ termsLanguageTag?: undefined;
22
+ } | {
23
+ isDownloadComplete: boolean;
24
+ termsMarkdown: string;
25
+ termsLanguageTag: string | undefined;
17
26
  };
@@ -2,24 +2,26 @@ import { fallbackLanguageTag } from "../../login/i18n";
2
2
  import { assert } from "tsafe/assert";
3
3
  import { createStatefulObservable, useRerenderOnChange } from "../../tools/StatefulObservable";
4
4
  import { useOnFistMount } from "../../tools/useOnFirstMount";
5
- const obsTermsMarkdown = createStatefulObservable(() => undefined);
5
+ const obs = createStatefulObservable(() => undefined);
6
6
  assert();
7
7
  /** Allow to avoid bundling the terms and download it on demand*/
8
8
  export function useDownloadTerms(params) {
9
- const { kcContext, downloadTermMarkdown } = params;
9
+ const { kcContext, downloadTermsMarkdown } = params;
10
10
  useOnFistMount(async () => {
11
11
  var _a, _b;
12
12
  if (kcContext.pageId === "terms.ftl" || kcContext.termsAcceptanceRequired) {
13
- const termsMarkdown = await downloadTermMarkdown({
13
+ obs.current = await downloadTermsMarkdown({
14
14
  currentLanguageTag: (_b = (_a = kcContext.locale) === null || _a === void 0 ? void 0 : _a.currentLanguageTag) !== null && _b !== void 0 ? _b : fallbackLanguageTag
15
15
  });
16
- obsTermsMarkdown.current = termsMarkdown;
17
16
  }
18
17
  });
19
18
  }
20
19
  export function useTermsMarkdown() {
21
- useRerenderOnChange(obsTermsMarkdown);
22
- const termsMarkdown = obsTermsMarkdown.current;
23
- return { termsMarkdown };
20
+ useRerenderOnChange(obs);
21
+ if (obs.current === undefined) {
22
+ return { isDownloadComplete: false };
23
+ }
24
+ const { termsMarkdown, termsLanguageTag } = obs.current;
25
+ return { isDownloadComplete: true, termsMarkdown, termsLanguageTag };
24
26
  }
25
27
  //# sourceMappingURL=useDownloadTerms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDownloadTerms.js","sourceRoot":"","sources":["../../src/login/lib/useDownloadTerms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACH,wBAAwB,EACxB,mBAAmB,EACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,MAAM,gBAAgB,GAAG,wBAAwB,CAAqB,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAUvF,MAAM,EAAkD,CAAC;AAEzD,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,MAGhC;IACG,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC;IAEnD,cAAc,CAAC,KAAK,IAAI,EAAE;;QACtB,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,IAAI,SAAS,CAAC,uBAAuB,EAAE;YACvE,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC;gBAC7C,kBAAkB,EACd,MAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,kBAAkB,mCAAI,mBAAmB;aAClE,CAAC,CAAC;YAEH,gBAAgB,CAAC,OAAO,GAAG,aAAa,CAAC;SAC5C;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC5B,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAE/C,OAAO,EAAE,aAAa,EAAE,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"useDownloadTerms.js","sourceRoot":"","sources":["../../src/login/lib/useDownloadTerms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACH,wBAAwB,EACxB,mBAAmB,EACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,MAAM,GAAG,GAAG,wBAAwB,CAMlC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAUnB,MAAM,EAAkD,CAAC;AAEzD,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,MAKhC;IACG,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;IAEpD,cAAc,CAAC,KAAK,IAAI,EAAE;;QACtB,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,IAAI,SAAS,CAAC,uBAAuB,EAAE;YACvE,GAAG,CAAC,OAAO,GAAG,MAAM,qBAAqB,CAAC;gBACtC,kBAAkB,EACd,MAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,kBAAkB,mCAAI,mBAAmB;aAClE,CAAC,CAAC;SACN;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC5B,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE;QAC3B,OAAO,EAAE,kBAAkB,EAAE,KAAc,EAAE,CAAC;KACjD;IAED,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;IAExD,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AACzE,CAAC"}
@@ -11,10 +11,10 @@ export default function Terms(props) {
11
11
  });
12
12
  const { msg, msgStr } = i18n;
13
13
  const { url } = kcContext;
14
- const { termsMarkdown } = useTermsMarkdown();
15
- if (termsMarkdown === undefined) {
14
+ const { isDownloadComplete, termsMarkdown, termsLanguageTag } = useTermsMarkdown();
15
+ if (!isDownloadComplete) {
16
16
  return null;
17
17
  }
18
- return (_jsxs(Template, Object.assign({}, { kcContext, i18n, doUseDefaultCss, classes }, { displayMessage: false, headerNode: msg("termsTitle") }, { children: [_jsx("div", Object.assign({ id: "kc-terms-text" }, { children: _jsx(Markdown, { children: termsMarkdown }) })), _jsxs("form", Object.assign({ className: "form-actions", action: url.loginAction, method: "POST" }, { children: [_jsx("input", { className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonClass"), getClassName("kcButtonClass"), getClassName("kcButtonPrimaryClass"), getClassName("kcButtonLargeClass")), name: "accept", id: "kc-accept", type: "submit", value: msgStr("doAccept") }), _jsx("input", { className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonDefaultClass"), getClassName("kcButtonLargeClass")), name: "cancel", id: "kc-decline", type: "submit", value: msgStr("doDecline") })] })), _jsx("div", { className: "clearfix" })] })));
18
+ return (_jsxs(Template, Object.assign({}, { kcContext, i18n, doUseDefaultCss, classes }, { displayMessage: false, headerNode: msg("termsTitle") }, { children: [_jsx("div", Object.assign({ id: "kc-terms-text", lang: termsLanguageTag }, { children: _jsx(Markdown, { children: termsMarkdown }) })), _jsxs("form", Object.assign({ className: "form-actions", action: url.loginAction, method: "POST" }, { children: [_jsx("input", { className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonClass"), getClassName("kcButtonClass"), getClassName("kcButtonPrimaryClass"), getClassName("kcButtonLargeClass")), name: "accept", id: "kc-accept", type: "submit", value: msgStr("doAccept") }), _jsx("input", { className: clsx(getClassName("kcButtonClass"), getClassName("kcButtonDefaultClass"), getClassName("kcButtonLargeClass")), name: "cancel", id: "kc-decline", type: "submit", value: msgStr("doDecline") })] })), _jsx("div", { className: "clearfix" })] })));
19
19
  }
20
20
  //# sourceMappingURL=Terms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Terms.js","sourceRoot":"","sources":["../../src/login/pages/Terms.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAK1E,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAmE;IAC7F,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe;QACf,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;IAE1B,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAE7C,IAAI,aAAa,KAAK,SAAS,EAAE;QAC7B,OAAO,IAAI,CAAC;KACf;IAED,OAAO,CACH,MAAC,QAAQ,oBAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,iBAC7G,4BAAK,EAAE,EAAC,eAAe,gBACnB,KAAC,QAAQ,cAAE,aAAa,GAAY,IAClC,EACN,8BAAM,SAAS,EAAC,cAAc,EAAC,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAC,MAAM,iBACjE,gBACI,SAAS,EAAE,IAAI,CACX,YAAY,CAAC,eAAe,CAAC,EAC7B,YAAY,CAAC,eAAe,CAAC,EAC7B,YAAY,CAAC,eAAe,CAAC,EAC7B,YAAY,CAAC,sBAAsB,CAAC,EACpC,YAAY,CAAC,oBAAoB,CAAC,CACrC,EACD,IAAI,EAAC,QAAQ,EACb,EAAE,EAAC,WAAW,EACd,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,GAC3B,EACF,gBACI,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,sBAAsB,CAAC,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC,EACxH,IAAI,EAAC,QAAQ,EACb,EAAE,EAAC,YAAY,EACf,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,GAC5B,KACC,EACP,cAAK,SAAS,EAAC,UAAU,GAAG,KACrB,CACd,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"Terms.js","sourceRoot":"","sources":["../../src/login/pages/Terms.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAK1E,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAmE;IAC7F,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEtE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe;QACf,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7B,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;IAE1B,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEnF,IAAI,CAAC,kBAAkB,EAAE;QACrB,OAAO,IAAI,CAAC;KACf;IAED,OAAO,CACH,MAAC,QAAQ,oBAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,IAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,iBAC7G,4BAAK,EAAE,EAAC,eAAe,EAAC,IAAI,EAAE,gBAAgB,gBAC1C,KAAC,QAAQ,cAAE,aAAa,GAAY,IAClC,EACN,8BAAM,SAAS,EAAC,cAAc,EAAC,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAC,MAAM,iBACjE,gBACI,SAAS,EAAE,IAAI,CACX,YAAY,CAAC,eAAe,CAAC,EAC7B,YAAY,CAAC,eAAe,CAAC,EAC7B,YAAY,CAAC,eAAe,CAAC,EAC7B,YAAY,CAAC,sBAAsB,CAAC,EACpC,YAAY,CAAC,oBAAoB,CAAC,CACrC,EACD,IAAI,EAAC,QAAQ,EACb,EAAE,EAAC,WAAW,EACd,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,GAC3B,EACF,gBACI,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,sBAAsB,CAAC,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC,EACxH,IAAI,EAAC,QAAQ,EACb,EAAE,EAAC,YAAY,EACf,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,GAC5B,KACC,EACP,cAAK,SAAS,EAAC,UAAU,GAAG,KACrB,CACd,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keycloakify",
3
- "version": "10.0.0-rc.34",
3
+ "version": "10.0.0-rc.36",
4
4
  "description": "Create Keycloak themes using React",
5
5
  "repository": {
6
6
  "type": "git",
@@ -7,7 +7,13 @@ import {
7
7
  import { useOnFistMount } from "keycloakify/tools/useOnFirstMount";
8
8
  import { KcContext } from "../KcContext";
9
9
 
10
- const obsTermsMarkdown = createStatefulObservable<string | undefined>(() => undefined);
10
+ const obs = createStatefulObservable<
11
+ | {
12
+ termsMarkdown: string;
13
+ termsLanguageTag: string | undefined;
14
+ }
15
+ | undefined
16
+ >(() => undefined);
11
17
 
12
18
  export type KcContextLike = {
13
19
  pageId: string;
@@ -22,26 +28,30 @@ assert<KcContext extends KcContextLike ? true : false>();
22
28
  /** Allow to avoid bundling the terms and download it on demand*/
23
29
  export function useDownloadTerms(params: {
24
30
  kcContext: KcContextLike;
25
- downloadTermMarkdown: (params: { currentLanguageTag: string }) => Promise<string>;
31
+ downloadTermsMarkdown: (params: {
32
+ currentLanguageTag: string;
33
+ }) => Promise<{ termsMarkdown: string; termsLanguageTag: string | undefined }>;
26
34
  }) {
27
- const { kcContext, downloadTermMarkdown } = params;
35
+ const { kcContext, downloadTermsMarkdown } = params;
28
36
 
29
37
  useOnFistMount(async () => {
30
38
  if (kcContext.pageId === "terms.ftl" || kcContext.termsAcceptanceRequired) {
31
- const termsMarkdown = await downloadTermMarkdown({
39
+ obs.current = await downloadTermsMarkdown({
32
40
  currentLanguageTag:
33
41
  kcContext.locale?.currentLanguageTag ?? fallbackLanguageTag
34
42
  });
35
-
36
- obsTermsMarkdown.current = termsMarkdown;
37
43
  }
38
44
  });
39
45
  }
40
46
 
41
47
  export function useTermsMarkdown() {
42
- useRerenderOnChange(obsTermsMarkdown);
48
+ useRerenderOnChange(obs);
49
+
50
+ if (obs.current === undefined) {
51
+ return { isDownloadComplete: false as const };
52
+ }
43
53
 
44
- const termsMarkdown = obsTermsMarkdown.current;
54
+ const { termsMarkdown, termsLanguageTag } = obs.current;
45
55
 
46
- return { termsMarkdown };
56
+ return { isDownloadComplete: true, termsMarkdown, termsLanguageTag };
47
57
  }
@@ -18,15 +18,15 @@ export default function Terms(props: PageProps<Extract<KcContext, { pageId: "ter
18
18
 
19
19
  const { url } = kcContext;
20
20
 
21
- const { termsMarkdown } = useTermsMarkdown();
21
+ const { isDownloadComplete, termsMarkdown, termsLanguageTag } = useTermsMarkdown();
22
22
 
23
- if (termsMarkdown === undefined) {
23
+ if (!isDownloadComplete) {
24
24
  return null;
25
25
  }
26
26
 
27
27
  return (
28
28
  <Template {...{ kcContext, i18n, doUseDefaultCss, classes }} displayMessage={false} headerNode={msg("termsTitle")}>
29
- <div id="kc-terms-text">
29
+ <div id="kc-terms-text" lang={termsLanguageTag}>
30
30
  <Markdown>{termsMarkdown}</Markdown>
31
31
  </div>
32
32
  <form className="form-actions" action={url.loginAction} method="POST">