diff --git a/package.json b/package.json index 56cb183f..e5892137 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,16 @@ "license": "MIT", "keycloakify": { "themeName": "dsfr", + "extraThemeNames": [ + "dsfr-no-login-form" + ], "extraThemeProperties": [ "homeUrl=${env.DSFR_THEME_HOME_URL:}", "serviceTitle=${env.DSFR_THEME_SERVICE_TITLE:}", "brandTop=${env.DSFR_THEME_BRAND_TOP:}", "tosUrl=${env.DSFR_THEME_TOS_URL:}", - "contactEmail=${env.DSFR_THEME_CONTACT_EMAIL:}" + "contactEmail=${env.DSFR_THEME_CONTACT_EMAIL:}", + "loginHtml=${env.DSFR_THEME_LOGIN_HTML:}" ] }, "scripts": { diff --git a/src/Properties.ts b/src/Properties.ts index 8fbc6a14..1eefd7e4 100644 --- a/src/Properties.ts +++ b/src/Properties.ts @@ -5,4 +5,5 @@ export type Properties = { brandTop: string; tosUrl: string; contactEmail: string; + loginHtml: string; }; diff --git a/src/login/pages/Login.tsx b/src/login/pages/Login.tsx index 93ce730f..1c8875a5 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"; @@ -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(); @@ -47,6 +55,10 @@ export default function Login( formElement.submit(); }); + useEffect(() => { + if (realm.displayName) document.title = realm.displayName; + }, []); + return ( ); } @@ -263,6 +295,9 @@ const useStyles = tss.withName({ Login }).create({ "borderRight": "none" } }, + "btnSocialProvider": { + "marginBottom": fr.spacing("6v") + }, "forgotPassword": { "marginRight": fr.spacing("6v") },