• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

EcrituresNumeriques / stylo / 13829106521

13 Mar 2025 07:16AM UTC coverage: 30.051% (+1.5%) from 28.543%
13829106521

push

github

web-flow
Traduction de la page d'accueil (#1330)

* fix(front): traduit et accessibilise la page de connexion

* chore: ajoute les styles typographiques

* feat(login): traduction et a11y de la page

* fix(i18n): ajuste les tests avec les vraies traductions

* chore: suppression de HUMANID_REGISTER_ENDPOINT

* Fin traduction en espagnol

Rajout des deux dernières clés pour traduction de la page de connexion

---------

Co-authored-by: Thomas Parisot <thom4parisot@users.noreply.github.com>
Co-authored-by: gromettoclara <129292328+gromettoclara@users.noreply.github.com>

429 of 641 branches covered (66.93%)

Branch coverage included in aggregate %.

76 of 168 new or added lines in 6 files covered. (45.24%)

1 existing line in 1 file now uncovered.

4148 of 14590 relevant lines covered (28.43%)

2.06 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/front/src/components/Header.jsx
1
import React, { useMemo } from 'react'
×
2
import { LifeBuoy } from 'react-feather'
×
3
import { useSelector } from 'react-redux'
×
4
import { NavLink, Route, Switch } from 'react-router-dom'
×
5
import { useTranslation } from 'react-i18next'
×
6

7
import logoContent from '/images/logo.svg?inline'
×
8
import { useActiveWorkspace } from '../hooks/workspace.js'
×
9

10
import styles from './header.module.scss'
×
11
import LanguagesMenu from './header/LanguagesMenu.jsx'
×
12
import UserMenu from './header/UserMenu.jsx'
×
13

NEW
14
export default function Header() {
×
15
  const activeWorkspace = useActiveWorkspace()
×
16
  const activeWorkspaceId = useMemo(
×
17
    () => activeWorkspace?._id,
×
18
    [activeWorkspace]
×
19
  )
×
NEW
20
  const baseUrl = useMemo(
×
NEW
21
    () => (activeWorkspaceId ? `/workspaces/${activeWorkspaceId}` : ''),
×
NEW
22
    [activeWorkspaceId]
×
NEW
23
  )
×
24
  const connected = useSelector((state) => state.loggedIn)
×
25
  const { t } = useTranslation()
×
26

27
  return (
×
28
    <Switch>
×
29
      <Route path="*/preview" />
×
30
      <Route path="/credentials/auth-callback" />
×
31
      <Route path="*">
×
32
        <header className={styles.headerContainer} role="banner">
×
33
          <section className={styles.header}>
×
34
            <h1 className={styles.logo}>
×
NEW
35
              <NavLink to={`${baseUrl}/`} rel="home">
×
36
                <img src={logoContent} alt="Stylo" title="Stylo" />
×
37
              </NavLink>
×
38
            </h1>
×
39
            <nav role="navigation">
×
40
              <ul className={styles.menuLinks}>
×
41
                {connected && (
×
42
                  <li>
×
NEW
43
                    <NavLink to={`${baseUrl}/articles`}>
×
44
                      {t('header.articles.link')}
×
45
                    </NavLink>
×
46
                  </li>
×
47
                )}
48
                {connected && (
×
49
                  <li>
×
NEW
50
                    <NavLink to={`${baseUrl}/corpus`}>
×
51
                      {t('header.corpus.link')}
×
52
                    </NavLink>
×
53
                  </li>
×
54
                )}
55
                {!connected && (
×
56
                  <li>
×
57
                    <NavLink to="/">
×
58
                      {t('credentials.login.confirmButton')}
×
59
                    </NavLink>
×
60
                  </li>
×
61
                )}
62
                {!connected && (
×
63
                  <li>
×
64
                    <NavLink to="/register" className={styles.registerAction}>
×
65
                      {t('credentials.login.registerLink')}
×
66
                    </NavLink>
×
67
                  </li>
×
68
                )}
69
              </ul>
×
70
            </nav>
×
71
            <nav className={styles.secondaryNav}>
×
72
              {connected && <UserMenu />}
×
73
              <a
×
74
                className={styles.documentationLink}
×
75
                href="https://stylo-doc.ecrituresnumeriques.ca"
×
76
                target="_blank"
×
77
                rel="noopener noreferrer"
×
78
              >
NEW
79
                <LifeBuoy size={16} aria-hidden />
×
80
                {t('header.documentation.link')}
×
81
              </a>
×
82
              <LanguagesMenu />
×
83
            </nav>
×
84
          </section>
×
85
        </header>
×
86
      </Route>
×
87
    </Switch>
×
88
  )
89
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc