28 lines
699 B
TypeScript
28 lines
699 B
TypeScript
import React from 'react'
|
|
import emoji from 'react-easy-emoji'
|
|
import { useTranslation } from 'react-i18next'
|
|
|
|
const languageCodeToEmoji = {
|
|
en: '🇬🇧',
|
|
fr: '🇫🇷'
|
|
}
|
|
|
|
export default function LangSwitcher({ className }: { className: string }) {
|
|
const { i18n } = useTranslation()
|
|
const languageCode = i18n.language
|
|
const unusedLanguageCode =
|
|
!languageCode || languageCode === 'fr' ? 'en' : 'fr'
|
|
const changeLanguage = () => {
|
|
i18n.changeLanguage(unusedLanguageCode)
|
|
}
|
|
return (
|
|
<button
|
|
className={className ?? 'ui__ link-button'}
|
|
onClick={changeLanguage}
|
|
>
|
|
{emoji(languageCodeToEmoji[languageCode as 'fr' | 'en'])}{' '}
|
|
{languageCode.toUpperCase()}
|
|
</button>
|
|
)
|
|
}
|