diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e60f7d9..b8d6abbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to ### Added - ✨(frontend) allow disabling silent login via a URL parameter +- ✨(frontend) allow hiding the login button via a URL parameter ### Changed diff --git a/src/frontend/src/layout/Header.tsx b/src/frontend/src/layout/Header.tsx index 8df8bd6d..550c774a 100644 --- a/src/frontend/src/layout/Header.tsx +++ b/src/frontend/src/layout/Header.tsx @@ -14,6 +14,7 @@ import { VisualOnlyTooltip } from '@/primitives/VisualOnlyTooltip' import { useLoginHint } from '@/hooks/useLoginHint' import { logout } from '@/features/auth/utils/logout' +import { useMemo } from 'react' const Logo = () => ( { ) } +const HIDE_LOGIN_PARAM = 'hideLogin' + +const isLoginButtonHidden = () => { + if (typeof window === 'undefined') return false + const value = new URLSearchParams(window.location.search).get( + HIDE_LOGIN_PARAM + ) + return value === 'true' +} + export const Header = () => { const { t } = useTranslation() const isHome = useMatchesRoute('home') @@ -92,6 +103,9 @@ export const Header = () => { const isTermsOfService = useMatchesRoute('termsOfService') const isRoom = useMatchesRoute('room') const { user, isLoggedIn } = useUser() + + const loginButtonDisabledByUrl = useMemo(() => isLoginButtonHidden(), []) + const userLabel = user?.full_name || user?.email const loggedInTooltip = t('loggedInUserTooltip') const loggedInAriaLabel = userLabel @@ -152,7 +166,8 @@ export const Header = () => { !isHome && !isLegalTerms && !isAccessibility && - !isTermsOfService && ( + !isTermsOfService && + !loginButtonDisabledByUrl && ( <>