💄(proconnect) replace all proconnect buttons when env is off

The home button was already updated but I missed a few places where it
was also used.
This commit is contained in:
Emmanuel Pelletier
2025-06-03 23:10:04 +02:00
committed by aleb_the_flash
parent 98de4f9145
commit 260eab23be
11 changed files with 50 additions and 36 deletions

View File

@@ -1,9 +1,21 @@
import { LinkButton } from '@/primitives' import { LinkButton } from '@/primitives'
import { authUrl } from '@/features/auth' import { authUrl } from '@/features/auth'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { useConfig } from '@/api/useConfig'
import { ProConnectButton } from './ProConnectButton'
export const LoginButton = () => { type LoginButtonProps = {
proConnectHint?: boolean // Hide hint in layouts where space doesn't allow it.
}
export const LoginButton = ({ proConnectHint = true }: LoginButtonProps) => {
const { t } = useTranslation('global', { keyPrefix: 'login' }) const { t } = useTranslation('global', { keyPrefix: 'login' })
const { data } = useConfig()
if (data?.use_proconnect_button) {
return <ProConnectButton hint={proConnectHint} />
}
return ( return (
<LinkButton href={authUrl()} data-attr="login" variant="primary"> <LinkButton href={authUrl()} data-attr="login" variant="primary">
{t('buttonLabel')} {t('buttonLabel')}

View File

@@ -1,9 +1,9 @@
import { Link } from 'react-aria-components' import { Link as RALink } from 'react-aria-components'
import { authUrl } from '@/features/auth' import { authUrl } from '@/features/auth'
import { cva } from '@/styled-system/css' import { cva } from '@/styled-system/css'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { VStack } from '@/styled-system/jsx' import { VStack } from '@/styled-system/jsx'
import { Text } from '@/primitives' import { Link } from '@/primitives'
// Styles per their documentation https://github.com/numerique-gouv/agentconnect-documentation/blob/main/doc_fs/bouton_proconnect.md // Styles per their documentation https://github.com/numerique-gouv/agentconnect-documentation/blob/main/doc_fs/bouton_proconnect.md
const proConnectButtonRecipe = cva({ const proConnectButtonRecipe = cva({
@@ -32,23 +32,22 @@ export const ProConnectButton = ({ hint = true }: ProConnectButtonProps) => {
const { t } = useTranslation('global', { keyPrefix: 'login' }) const { t } = useTranslation('global', { keyPrefix: 'login' })
return ( return (
<VStack alignItems="start"> <VStack alignItems="start">
<Link <RALink
className={proConnectButtonRecipe()} className={proConnectButtonRecipe()}
aria-label={t('proconnectButtonLabel')} aria-label={t('proconnectButtonLabel')}
href={authUrl()} href={authUrl()}
data-attr="login" data-attr="login"
/> />
{hint && ( {hint && (
<Text margin="sm" variant="note"> <Link
<Link to="https://agentconnect.gouv.fr/"
href="https://agentconnect.gouv.fr/" target="_blank"
target="_blank" rel="noopener noreferrer"
rel="noopener noreferrer" color="note"
aria-label={t('linkLabel')} aria-label={t('proconnectLinkLabel')}
> >
{t('link')} {t('proconnectLink')}
</Link> </Link>
</Text>
)} )}
</VStack> </VStack>
) )

View File

@@ -7,7 +7,6 @@ import { Screen } from '@/layout/Screen'
import { generateRoomId } from '@/features/rooms' import { generateRoomId } from '@/features/rooms'
import { useUser, UserAware } from '@/features/auth' import { useUser, UserAware } from '@/features/auth'
import { JoinMeetingDialog } from '../components/JoinMeetingDialog' import { JoinMeetingDialog } from '../components/JoinMeetingDialog'
import { ProConnectButton } from '@/components/ProConnectButton'
import { useCreateRoom } from '@/features/rooms' import { useCreateRoom } from '@/features/rooms'
import { RiAddLine, RiLink } from '@remixicon/react' import { RiAddLine, RiLink } from '@remixicon/react'
import { LaterMeetingDialog } from '@/features/home/components/LaterMeetingDialog' import { LaterMeetingDialog } from '@/features/home/components/LaterMeetingDialog'
@@ -214,10 +213,8 @@ export const Home = () => {
</MenuItem> </MenuItem>
</RACMenu> </RACMenu>
</Menu> </Menu>
) : data?.use_proconnect_button ? (
<ProConnectButton hint={false} />
) : ( ) : (
<LoginButton /> <LoginButton proConnectHint={false} />
)} )}
<DialogTrigger> <DialogTrigger>
<Button <Button

View File

@@ -2,7 +2,7 @@ import { Trans, useTranslation } from 'react-i18next'
import { useLanguageLabels } from '@/i18n/useLanguageLabels' import { useLanguageLabels } from '@/i18n/useLanguageLabels'
import { A, Badge, Dialog, type DialogProps, Field, H, P } from '@/primitives' import { A, Badge, Dialog, type DialogProps, Field, H, P } from '@/primitives'
import { useUser } from '@/features/auth' import { useUser } from '@/features/auth'
import { ProConnectButton } from '@/components/ProConnectButton' import { LoginButton } from '@/components/LoginButton'
export type SettingsDialogProps = Pick<DialogProps, 'isOpen' | 'onOpenChange'> export type SettingsDialogProps = Pick<DialogProps, 'isOpen' | 'onOpenChange'>
@@ -29,7 +29,7 @@ export const SettingsDialog = (props: SettingsDialogProps) => {
) : ( ) : (
<> <>
<P>{t('account.youAreNotLoggedIn')}</P> <P>{t('account.youAreNotLoggedIn')}</P>
<ProConnectButton /> <LoginButton />
</> </>
)} )}
<H lvl={2}>{t('language.heading')}</H> <H lvl={2}>{t('language.heading')}</H>

View File

@@ -6,7 +6,7 @@ import { css } from '@/styled-system/css'
import { TabPanel, TabPanelProps } from '@/primitives/Tabs' import { TabPanel, TabPanelProps } from '@/primitives/Tabs'
import { HStack } from '@/styled-system/jsx' import { HStack } from '@/styled-system/jsx'
import { useState } from 'react' import { useState } from 'react'
import { ProConnectButton } from '@/components/ProConnectButton' import { LoginButton } from '@/components/LoginButton'
import { usePersistentUserChoices } from '@/features/rooms/livekit/hooks/usePersistentUserChoices' import { usePersistentUserChoices } from '@/features/rooms/livekit/hooks/usePersistentUserChoices'
export type AccountTabProps = Pick<DialogProps, 'onOpenChange'> & export type AccountTabProps = Pick<DialogProps, 'onOpenChange'> &
@@ -57,7 +57,7 @@ export const AccountTab = ({ id, onOpenChange }: AccountTabProps) => {
) : ( ) : (
<> <>
<P>{t('account.youAreNotLoggedIn')}</P> <P>{t('account.youAreNotLoggedIn')}</P>
<ProConnectButton /> <LoginButton />
</> </>
)} )}
<HStack <HStack

View File

@@ -9,7 +9,7 @@ import { useMatchesRoute } from '@/navigation/useMatchesRoute'
import { FeedbackBanner } from '@/components/FeedbackBanner' import { FeedbackBanner } from '@/components/FeedbackBanner'
import { Menu } from '@/primitives/Menu' import { Menu } from '@/primitives/Menu'
import { MenuList } from '@/primitives/MenuList' import { MenuList } from '@/primitives/MenuList'
import { ProConnectButton } from '@/components/ProConnectButton' import { LoginButton } from '@/components/LoginButton'
import LogoAsset from '@/assets/logo.svg' import LogoAsset from '@/assets/logo.svg'
import { useLoginHint } from '@/hooks/useLoginHint' import { useLoginHint } from '@/hooks/useLoginHint'
@@ -175,7 +175,7 @@ export const Header = () => {
!isAccessibility && !isAccessibility &&
!isTermsOfService && ( !isTermsOfService && (
<> <>
<ProConnectButton hint={false} /> <LoginButton proConnectHint={false} />
<LoginHint /> <LoginHint />
</> </>
)} )}

View File

@@ -16,9 +16,10 @@
"loading": "Ladevorgang…", "loading": "Ladevorgang…",
"loggedInUserTooltip": "Angemeldet als…", "loggedInUserTooltip": "Angemeldet als…",
"login": { "login": {
"buttonLabel": "Mit ProConnect anmelden", "buttonLabel": "Anmelden",
"linkLabel": "Was ist ProConnect? neues Fenster", "proconnectButtonLabel": "Mit ProConnect anmelden",
"link": "Was ist ProConnect?" "proconnectLinkLabel": "Was ist ProConnect? neues Fenster",
"proconnectLink": "Was ist ProConnect?"
}, },
"logout": "Abmelden", "logout": "Abmelden",
"notFound": { "notFound": {

View File

@@ -16,10 +16,10 @@
"loading": "Loading…", "loading": "Loading…",
"loggedInUserTooltip": "Logged in as…", "loggedInUserTooltip": "Logged in as…",
"login": { "login": {
"proconnectButtonLabel": "Login with ProConnect",
"buttonLabel": "Login", "buttonLabel": "Login",
"linkLabel": "What is ProConnect? - new tab", "proconnectButtonLabel": "Login with ProConnect",
"link": "What is ProConnect?" "proconnectLinkLabel": "What is ProConnect? - new tab",
"proconnectLink": "What is ProConnect?"
}, },
"logout": "Logout", "logout": "Logout",
"notFound": { "notFound": {

View File

@@ -16,9 +16,10 @@
"loading": "Chargement…", "loading": "Chargement…",
"loggedInUserTooltip": "Connecté en tant que…", "loggedInUserTooltip": "Connecté en tant que…",
"login": { "login": {
"buttonLabel": "S'identifier avec ProConnect", "buttonLabel": "Se connecter",
"linkLabel": "Qu'est-ce que ProConnect ? - nouvelle fenêtre", "proconnectButtonLabel": "S'identifier avec ProConnect",
"link": "Qu'est-ce que ProConnect ?" "proconnectLinkLabel": "Qu'est-ce que ProConnect ? - nouvelle fenêtre",
"proconnectLink": "Qu'est-ce que ProConnect ?"
}, },
"logout": "Se déconnecter", "logout": "Se déconnecter",
"notFound": { "notFound": {

View File

@@ -16,9 +16,10 @@
"loading": "Laden ...", "loading": "Laden ...",
"loggedInUserTooltip": "Ingelogd als ...", "loggedInUserTooltip": "Ingelogd als ...",
"login": { "login": {
"buttonLabel": "Log in met Proconnect", "buttonLabel": "Log in",
"linkLabel": "Wat is ProConnect? ", "proconnectButtonLabel": "Log in met Proconnect",
"link": "Wat is ProConnect?" "proconnectLinkLabel": "Wat is ProConnect?",
"proconnectLink": "Wat is ProConnect?"
}, },
"logout": "Uitloggen", "logout": "Uitloggen",
"notFound": { "notFound": {

View File

@@ -55,6 +55,9 @@ const link = cva({
primary: { primary: {
color: 'blue', color: 'blue',
}, },
note: {
color: 'default.subtle-text',
},
}, },
}, },
}) })