For useKcMessage we prefer returning callbacks with a changing references
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
|
import { useCallback } from "react";
|
||||||
import { useKcLanguageTag } from "./useKcLanguageTag";
|
import { useKcLanguageTag } from "./useKcLanguageTag";
|
||||||
import { messages } from "./generated_messages/login";
|
import { messages } from "./generated_messages/login";
|
||||||
import { useConstCallback } from "powerhooks";
|
|
||||||
import type { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
import { id } from "evt/tools/typeSafety/id";
|
import { id } from "evt/tools/typeSafety/id";
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ export function useKcMessage() {
|
|||||||
|
|
||||||
const { kcLanguageTag } = useKcLanguageTag();
|
const { kcLanguageTag } = useKcLanguageTag();
|
||||||
|
|
||||||
const msgStr = useConstCallback(
|
const msgStr = useCallback(
|
||||||
(key: MessageKey, ...args: (string | undefined)[]): string => {
|
(key: MessageKey, ...args: (string | undefined)[]): string => {
|
||||||
|
|
||||||
let str: string = messages[kcLanguageTag as any as "en"][key] ?? messages["en"][key];
|
let str: string = messages[kcLanguageTag as any as "en"][key] ?? messages["en"][key];
|
||||||
@ -28,14 +28,16 @@ export function useKcMessage() {
|
|||||||
|
|
||||||
return str;
|
return str;
|
||||||
|
|
||||||
}
|
},
|
||||||
|
[kcLanguageTag]
|
||||||
);
|
);
|
||||||
|
|
||||||
const msg = useConstCallback(
|
const msg = useCallback(
|
||||||
id<(...args: Parameters<typeof msgStr>) => ReactNode>(
|
id<(...args: Parameters<typeof msgStr>) => ReactNode>(
|
||||||
(key, ...args) =>
|
(key, ...args) =>
|
||||||
<span className={key} dangerouslySetInnerHTML={{ "__html": msgStr(key, ...args) }} />
|
<span className={key} dangerouslySetInnerHTML={{ "__html": msgStr(key, ...args) }} />
|
||||||
)
|
),
|
||||||
|
[kcLanguageTag]
|
||||||
);
|
);
|
||||||
|
|
||||||
return { msg, msgStr };
|
return { msg, msgStr };
|
||||||
|
Reference in New Issue
Block a user