2021-03-06 14:42:56 +01:00
|
|
|
import { memo } from "react";
|
|
|
|
import { Template } from "./Template";
|
|
|
|
import type { KcProps } from "./KcProps";
|
|
|
|
import { assert } from "../tools/assert";
|
2021-06-23 08:16:51 +02:00
|
|
|
import type { KcContextBase } from "../getKcContext/KcContextBase";
|
2021-03-07 15:37:37 +01:00
|
|
|
import { useKcMessage } from "../i18n/useKcMessage";
|
2021-03-06 14:42:56 +01:00
|
|
|
|
2021-10-11 21:35:40 +02:00
|
|
|
export const Info = memo(
|
|
|
|
({ kcContext, ...props }: { kcContext: KcContextBase.Info } & KcProps) => {
|
|
|
|
const { msg } = useKcMessage();
|
2021-03-06 14:42:56 +01:00
|
|
|
|
2021-10-11 21:35:40 +02:00
|
|
|
assert(kcContext.message !== undefined);
|
2021-03-06 14:42:56 +01:00
|
|
|
|
2021-10-11 21:35:40 +02:00
|
|
|
const {
|
|
|
|
messageHeader,
|
|
|
|
message,
|
|
|
|
requiredActions,
|
|
|
|
skipLink,
|
|
|
|
pageRedirectUri,
|
|
|
|
actionUri,
|
|
|
|
client,
|
|
|
|
} = kcContext;
|
2021-03-06 14:42:56 +01:00
|
|
|
|
2021-10-11 21:35:40 +02:00
|
|
|
return (
|
|
|
|
<Template
|
|
|
|
{...{ kcContext, ...props }}
|
|
|
|
doFetchDefaultThemeResources={true}
|
|
|
|
displayMessage={false}
|
|
|
|
headerNode={
|
|
|
|
messageHeader !== undefined ? (
|
|
|
|
<>{messageHeader}</>
|
|
|
|
) : (
|
|
|
|
<>{message.summary}</>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
formNode={
|
|
|
|
<div id="kc-info-message">
|
|
|
|
<p className="instruction">
|
|
|
|
{message.summary}
|
2021-03-06 14:42:56 +01:00
|
|
|
|
2021-10-11 21:35:40 +02:00
|
|
|
{requiredActions !== undefined && (
|
|
|
|
<b>
|
|
|
|
{requiredActions
|
|
|
|
.map(requiredAction =>
|
|
|
|
msg(
|
|
|
|
`requiredAction.${requiredAction}` as const,
|
|
|
|
),
|
|
|
|
)
|
|
|
|
.join(",")}
|
|
|
|
</b>
|
|
|
|
)}
|
|
|
|
</p>
|
|
|
|
{!skipLink && pageRedirectUri !== undefined ? (
|
|
|
|
<p>
|
|
|
|
<a href={pageRedirectUri}>
|
|
|
|
{msg("backToApplication")}
|
|
|
|
</a>
|
|
|
|
</p>
|
|
|
|
) : actionUri !== undefined ? (
|
|
|
|
<p>
|
|
|
|
<a href={actionUri}>
|
|
|
|
{msg("proceedWithAction")}
|
|
|
|
</a>
|
|
|
|
</p>
|
|
|
|
) : (
|
|
|
|
client.baseUrl !== undefined && (
|
|
|
|
<p>
|
|
|
|
<a href={client.baseUrl}>
|
|
|
|
{msg("backToApplication")}
|
|
|
|
</a>
|
|
|
|
</p>
|
|
|
|
)
|
|
|
|
)}
|
|
|
|
</div>
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
},
|
|
|
|
);
|