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

EcrituresNumeriques / stylo / 15066626824

16 May 2025 10:41AM UTC coverage: 37.574% (-0.02%) from 37.594%
15066626824

Pull #1517

github

web-flow
Merge e05a1c169 into 607ffe7f9
Pull Request #1517: Mise à jour vers react-router@7

549 of 776 branches covered (70.75%)

Branch coverage included in aggregate %.

13 of 373 new or added lines in 28 files covered. (3.49%)

5 existing lines in 4 files now uncovered.

5319 of 14841 relevant lines covered (35.84%)

2.56 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 'lucide-react'
×
NEW
3
import { NavLink } from 'react-router'
×
4
import { useTranslation } from 'react-i18next'
×
5

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

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

14
export default function Header() {
×
15
  const { t } = useTranslation()
×
16
  const activeWorkspaceId = useActiveWorkspaceId()
×
17

18
  const baseUrl = useMemo(
×
19
    () => (activeWorkspaceId ? `/workspaces/${activeWorkspaceId}` : ''),
×
20
    [activeWorkspaceId]
×
21
  )
×
22
  const userId = useActiveUserId()
×
23

24
  return (
×
NEW
25
    <header className={styles.headerContainer} role="banner">
×
NEW
26
      <section className={styles.header}>
×
NEW
27
        <h1 className={styles.logo}>
×
NEW
28
          <NavLink to="/" rel="home">
×
NEW
29
            <img src={logoContent} alt="Stylo" title="Stylo" />
×
NEW
30
          </NavLink>
×
NEW
31
        </h1>
×
NEW
32
        <nav role="navigation">
×
NEW
33
          <ul className={styles.menuLinks}>
×
NEW
34
            {userId && (
×
NEW
35
              <li>
×
NEW
36
                <NavLink to={`${baseUrl}/articles`}>
×
NEW
37
                  {t('header.articles.link')}
×
NEW
38
                </NavLink>
×
NEW
39
              </li>
×
40
            )}
NEW
41
            {userId && (
×
NEW
42
              <li>
×
NEW
43
                <NavLink to={`${baseUrl}/corpus`}>
×
NEW
44
                  {t('header.corpus.link')}
×
NEW
45
                </NavLink>
×
NEW
46
              </li>
×
47
            )}
NEW
48
            {!userId && (
×
NEW
49
              <li>
×
NEW
50
                <NavLink to="/login">
×
NEW
51
                  {t('credentials.login.confirmButton')}
×
NEW
52
                </NavLink>
×
NEW
53
              </li>
×
54
            )}
NEW
55
            {!userId && (
×
NEW
56
              <li>
×
NEW
57
                <NavLink to="/register" className={styles.registerAction}>
×
NEW
58
                  {t('credentials.login.registerLink')}
×
NEW
59
                </NavLink>
×
NEW
60
              </li>
×
61
            )}
NEW
62
          </ul>
×
NEW
63
        </nav>
×
NEW
64
        <nav className={styles.secondaryNav}>
×
NEW
65
          {userId && <UserMenu />}
×
NEW
66
          <a
×
NEW
67
            className={styles.documentationLink}
×
NEW
68
            href="https://stylo-doc.ecrituresnumeriques.ca"
×
NEW
69
            target="_blank"
×
NEW
70
            rel="noopener noreferrer"
×
71
          >
NEW
72
            <LifeBuoy size={16} aria-hidden />
×
NEW
73
            {t('header.documentation.link')}
×
NEW
74
          </a>
×
NEW
75
          <LanguagesMenu />
×
NEW
76
        </nav>
×
NEW
77
      </section>
×
NEW
78
    </header>
×
79
  )
80
}
×
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

© 2025 Coveralls, Inc