From 7c257d97a741c36f1ace4f48caccfee8944c4d0b Mon Sep 17 00:00:00 2001 From: Joseph Garrone Date: Thu, 4 Jul 2024 19:53:57 +0200 Subject: [PATCH] #577 --- src/account/Template.tsx | 7 ++- src/account/pages/Totp.tsx | 22 +++++-- src/login/Template.tsx | 62 +++++++------------ src/login/TemplateProps.ts | 1 - src/login/UserProfileFormFields.tsx | 2 +- src/login/lib/useUserProfileForm.tsx | 9 ++- src/login/pages/Error.tsx | 2 +- src/login/pages/Info.tsx | 30 +++++++-- src/login/pages/Login.tsx | 29 ++++++--- src/login/pages/LoginConfigTotp.tsx | 22 +++++-- src/login/pages/LoginOtp.tsx | 11 +++- src/login/pages/LoginPassword.tsx | 11 +++- .../pages/LoginRecoveryAuthnCodeInput.tsx | 11 +++- src/login/pages/LoginResetPassword.tsx | 11 +++- src/login/pages/LoginUpdatePassword.tsx | 22 +++++-- src/login/pages/Register.tsx | 11 +++- 16 files changed, 170 insertions(+), 93 deletions(-) diff --git a/src/account/Template.tsx b/src/account/Template.tsx index 2458e514..3b0c2fe4 100644 --- a/src/account/Template.tsx +++ b/src/account/Template.tsx @@ -145,7 +145,12 @@ export default function Template(props: TemplateProps) {
{message.type === "success" && } {message.type === "error" && } - {message.summary} +
)} diff --git a/src/account/pages/Totp.tsx b/src/account/pages/Totp.tsx index 2879360a..7fc2ae65 100644 --- a/src/account/pages/Totp.tsx +++ b/src/account/pages/Totp.tsx @@ -154,9 +154,14 @@ export default function Totp(props: PageProps {messagesPerField.existsError("totp") && ( - - {messagesPerField.get("totp")} - + )} @@ -180,9 +185,14 @@ export default function Totp(props: PageProps {messagesPerField.existsError("userLabel") && ( - - {messagesPerField.get("userLabel")} - + )} diff --git a/src/login/Template.tsx b/src/login/Template.tsx index 2f8d0c90..fa0a0ba7 100644 --- a/src/login/Template.tsx +++ b/src/login/Template.tsx @@ -15,7 +15,6 @@ export default function Template(props: TemplateProps) { displayMessage = true, displayRequiredFields = false, headerNode, - showUsernameNode = null, socialProvidersNode = null, infoNode = null, documentTitle, @@ -164,45 +163,10 @@ export default function Template(props: TemplateProps) { )} - {!(auth !== undefined && auth.showUsername && !auth.showResetCredentials) ? ( - displayRequiredFields ? ( -
-
- - * - {msg("requiredFields")} - -
-
-

{headerNode}

-
-
- ) : ( + {(() => { + const node = !(auth !== undefined && auth.showUsername && !auth.showResetCredentials) ? (

{headerNode}

- ) - ) : displayRequiredFields ? ( -
-
- - * {msg("requiredFields")} - -
-
- {showUsernameNode} -
- - -
- - {msg("restartLoginTooltip")} -
-
-
-
-
- ) : ( - <> - {showUsernameNode} + ) : ( - - )} + ); + + if (displayRequiredFields) { + return ( +
+
+ + * + {msg("requiredFields")} + +
+
{node}
+
+ ); + } + + return node; + })()}
diff --git a/src/login/TemplateProps.ts b/src/login/TemplateProps.ts index dde6c08a..0e3b2895 100644 --- a/src/login/TemplateProps.ts +++ b/src/login/TemplateProps.ts @@ -12,7 +12,6 @@ export type TemplateProps = { displayRequiredFields?: boolean; showAnotherWayIfPresent?: boolean; headerNode: ReactNode; - showUsernameNode?: ReactNode; socialProvidersNode?: ReactNode; infoNode?: ReactNode; documentTitle?: string; diff --git a/src/login/UserProfileFormFields.tsx b/src/login/UserProfileFormFields.tsx index 04ad8dd4..80499a26 100644 --- a/src/login/UserProfileFormFields.tsx +++ b/src/login/UserProfileFormFields.tsx @@ -188,7 +188,7 @@ function FieldErrors(props: { attribute: Attribute; displayableErrors: FormField .filter(error => error.fieldIndex === fieldIndex) .map(({ errorMessage }, i, arr) => ( - {errorMessage} + {errorMessage} {arr.length - 1 !== i &&
}
))} diff --git a/src/login/lib/useUserProfileForm.tsx b/src/login/lib/useUserProfileForm.tsx index bb003e9c..9f4f4484 100644 --- a/src/login/lib/useUserProfileForm.tsx +++ b/src/login/lib/useUserProfileForm.tsx @@ -612,7 +612,14 @@ function useGetErrors(params: { kcContext: KcContextLike_useGetErrors; i18n: I18 return [ { errorMessageStr, - errorMessage: {errorMessageStr}, + errorMessage: ( + + ), fieldIndex: undefined, source: { type: "server" diff --git a/src/login/pages/Error.tsx b/src/login/pages/Error.tsx index b35d725b..4b2879eb 100644 --- a/src/login/pages/Error.tsx +++ b/src/login/pages/Error.tsx @@ -19,7 +19,7 @@ export default function Error(props: PageProps
-

{message.summary}

+

{!skipLink && client !== undefined && client.baseUrl !== undefined && (

diff --git a/src/login/pages/Info.tsx b/src/login/pages/Info.tsx index bdbc40a5..38b4b8ac 100644 --- a/src/login/pages/Info.tsx +++ b/src/login/pages/Info.tsx @@ -16,13 +16,33 @@ export default function Info(props: PageProps{messageHeader} : <>{message.summary}} + headerNode={ + + } >

)} @@ -128,9 +134,14 @@ export default function Login(props: PageProps {usernameHidden && messagesPerField.existsError("username", "password") && ( - - {messagesPerField.getFirstError("username", "password")} - + )}
diff --git a/src/login/pages/LoginConfigTotp.tsx b/src/login/pages/LoginConfigTotp.tsx index 58fc6a09..917b3c6c 100644 --- a/src/login/pages/LoginConfigTotp.tsx +++ b/src/login/pages/LoginConfigTotp.tsx @@ -112,9 +112,14 @@ export default function LoginConfigTotp(props: PageProps {messagesPerField.existsError("totp") && ( - - {messagesPerField.get("totp")} - + )}
@@ -138,9 +143,14 @@ export default function LoginConfigTotp(props: PageProps {messagesPerField.existsError("userLabel") && ( - - {messagesPerField.get("userLabel")} - + )}
diff --git a/src/login/pages/LoginOtp.tsx b/src/login/pages/LoginOtp.tsx index a7ce947e..b3631b18 100644 --- a/src/login/pages/LoginOtp.tsx +++ b/src/login/pages/LoginOtp.tsx @@ -70,9 +70,14 @@ export default function LoginOtp(props: PageProps {messagesPerField.existsError("totp") && ( - - {messagesPerField.get("totp")} - + )} diff --git a/src/login/pages/LoginPassword.tsx b/src/login/pages/LoginPassword.tsx index 56cfff4f..19df690b 100644 --- a/src/login/pages/LoginPassword.tsx +++ b/src/login/pages/LoginPassword.tsx @@ -60,9 +60,14 @@ export default function LoginPassword(props: PageProps {messagesPerField.existsError("password") && ( - - {messagesPerField.get("password")} - + )}
diff --git a/src/login/pages/LoginRecoveryAuthnCodeInput.tsx b/src/login/pages/LoginRecoveryAuthnCodeInput.tsx index 1fc06920..9a529c55 100644 --- a/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +++ b/src/login/pages/LoginRecoveryAuthnCodeInput.tsx @@ -43,9 +43,14 @@ export default function LoginRecoveryAuthnCodeInput(props: PageProps {messagesPerField.existsError("recoveryCodeInput") && ( - - {messagesPerField.get("recoveryCodeInput")} - + )}
diff --git a/src/login/pages/LoginResetPassword.tsx b/src/login/pages/LoginResetPassword.tsx index 377dbc13..a4fdcc2a 100644 --- a/src/login/pages/LoginResetPassword.tsx +++ b/src/login/pages/LoginResetPassword.tsx @@ -48,9 +48,14 @@ export default function LoginResetPassword(props: PageProps {messagesPerField.existsError("username") && ( - - {messagesPerField.get("username")} - + )} diff --git a/src/login/pages/LoginUpdatePassword.tsx b/src/login/pages/LoginUpdatePassword.tsx index c812c914..58649a54 100644 --- a/src/login/pages/LoginUpdatePassword.tsx +++ b/src/login/pages/LoginUpdatePassword.tsx @@ -46,9 +46,14 @@ export default function LoginUpdatePassword(props: PageProps {messagesPerField.existsError("password") && ( - - {messagesPerField.get("password")} - + )} @@ -74,9 +79,14 @@ export default function LoginUpdatePassword(props: PageProps {messagesPerField.existsError("password-confirm") && ( - - {messagesPerField.get("password-confirm")} - + )} diff --git a/src/login/pages/Register.tsx b/src/login/pages/Register.tsx index 090e0c63..27ad8b7e 100644 --- a/src/login/pages/Register.tsx +++ b/src/login/pages/Register.tsx @@ -118,9 +118,14 @@ function TermsAcceptance(props: { {messagesPerField.existsError("termsAccepted") && (
- - {messagesPerField.get("termsAccepted")} - +
)}