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

EcrituresNumeriques / stylo / 12925854411

23 Jan 2025 09:11AM UTC coverage: 25.831% (-4.7%) from 30.523%
12925854411

push

github

web-flow
Merge pull request #1192 from EcrituresNumeriques/feat/vite6

322 of 518 branches covered (62.16%)

Branch coverage included in aggregate %.

3448 of 14077 relevant lines covered (24.49%)

1.66 hits per line

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

0.0
/front/src/components/header/LanguagesMenu.jsx
1
import React, { useCallback, useEffect, useState } from 'react'
×
2
import { useTranslation } from 'react-i18next'
×
3
import useComponentVisible from '../../hooks/componentVisible.js'
×
4
import i18n from '../../i18n.js'
×
5
import LanguagesIcon from './LanguagesIcon.jsx'
×
6
import styles from './LanguagesMenu.module.scss'
×
7

8
export default function LanguagesMenu() {
×
9
  const { t } = useTranslation()
×
10
  const { ref, isComponentVisible, setIsComponentVisible } =
×
11
    useComponentVisible(false)
×
12

13
  const [language, setLanguage] = useState(i18n.language)
×
14

15
  useEffect(() => {
×
16
    setLanguage(i18n.language)
×
17
  }, [i18n.language])
×
18

19
  const handleLanguageChange = useCallback(async (value) => {
×
20
    await i18n.changeLanguage(value)
×
21
    setLanguage(value)
×
22
  }, [])
×
23

24
  useEffect(() => {
×
25
    setIsComponentVisible(false)
×
26
  }, [])
×
27

28
  return (
×
29
    <div ref={ref} className={styles.container}>
×
30
      <div
×
31
        className={styles.languagesMenuLink}
×
32
        onClick={() => setIsComponentVisible(!isComponentVisible)}
×
33
      >
34
        <LanguagesIcon width={20} height={20} />
×
35
      </div>
×
36
      {isComponentVisible && (
×
37
        <div className={styles.menu}>
×
38
          <div>
×
39
            <ul className={styles.languages}>
×
40
              <li
×
41
                onClick={() => handleLanguageChange('en')}
×
42
                className={language === 'en' ? styles.activeStyle : ''}
×
43
                title="English"
×
44
              >
×
45
                English
46
              </li>
×
47
              <li
×
48
                onClick={() => handleLanguageChange('fr')}
×
49
                className={language === 'fr' ? styles.activeStyle : ''}
×
50
                title="Français"
×
51
              >
×
52
                Français
53
              </li>
×
54
            </ul>
×
55
          </div>
×
56
        </div>
×
57
      )}
58
    </div>
×
59
  )
60
}
×
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