From 9f37206d71bd8f6d83e6c647156adc22b5f11ae6 Mon Sep 17 00:00:00 2001 From: sbourdon Date: Tue, 5 Dec 2023 13:49:27 +0100 Subject: [PATCH 1/4] feat: add realm display name as meta title on login --- src/login/pages/Login.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/login/pages/Login.tsx b/src/login/pages/Login.tsx index 93ce730f..2b7059b3 100644 --- a/src/login/pages/Login.tsx +++ b/src/login/pages/Login.tsx @@ -1,4 +1,4 @@ -import { useState, type FormEventHandler } from "react"; +import { useState, type FormEventHandler, useEffect } from "react"; import { useConstCallback } from "keycloakify/tools/useConstCallback"; import type { PageProps } from "keycloakify/login/pages/PageProps"; import { tss } from "tss-react/dsfr"; @@ -47,6 +47,10 @@ export default function Login( formElement.submit(); }); + useEffect(() => { + if (realm.displayName) document.title = realm.displayName; + }, []); + return ( ); } From 0a5b94f52f6ff0d12615dcdd08eb2002c7d5af71 Mon Sep 17 00:00:00 2001 From: sbourdon Date: Tue, 5 Dec 2023 13:59:38 +0100 Subject: [PATCH 4/4] feat: add extra theme without login form --- package.json | 3 + src/login/pages/Login.tsx | 198 +++++++++++++++++++++----------------- 2 files changed, 111 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index 88a277d0..e5892137 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,9 @@ "license": "MIT", "keycloakify": { "themeName": "dsfr", + "extraThemeNames": [ + "dsfr-no-login-form" + ], "extraThemeProperties": [ "homeUrl=${env.DSFR_THEME_HOME_URL:}", "serviceTitle=${env.DSFR_THEME_SERVICE_TITLE:}", diff --git a/src/login/pages/Login.tsx b/src/login/pages/Login.tsx index fa70d6bf..1c8875a5 100644 --- a/src/login/pages/Login.tsx +++ b/src/login/pages/Login.tsx @@ -23,8 +23,16 @@ export default function Login( "classes": classes_props }); - const { social, realm, url, usernameHidden, login, auth, registrationDisabled } = - kcContext; + const { + social, + realm, + url, + usernameHidden, + login, + auth, + registrationDisabled, + themeName + } = kcContext; const { msg, msgStr } = i18n; const { classes, cx } = useStyles(); @@ -152,100 +160,110 @@ export default function Login( )} -
{msgStr("selfCredentials")}
-
- {(() => { - const label = !realm.loginWithEmailAllowed - ? "username" - : realm.registrationEmailAsUsername - ? "email" - : "usernameOrEmail"; - const autoCompleteHelper: typeof label = - label === "usernameOrEmail" ? "username" : label; + {themeName !== "dsfr-dnum-no-login-form" && ( + <> +
{msgStr("selfCredentials")}
+
+ {(() => { + const label = !realm.loginWithEmailAllowed + ? "username" + : realm.registrationEmailAsUsername + ? "email" + : "usernameOrEmail"; - return ( - + ); + })()} + - ); - })()} - -
-
- {realm.rememberMe && !usernameHidden && ( - - )} +
+
+ {realm.rememberMe && !usernameHidden && ( + + )} +
+
-
-
-
- - -
+
+ + +
+ + )} )}