refactor: enhance LanguageSwitcher component with tooltip for current locale

This commit is contained in:
Dan Dobos
2025-10-20 21:05:39 +02:00
parent 9eeb3c5a7b
commit 78c68efc00
@@ -1,32 +1,48 @@
import React, { useContext } from "react";
import { AppContext } from "App";
import { useTheme } from "@mui/material/styles";
import { IconButton } from "@mui/material";
import { IconButton, Tooltip } from "@mui/material";
import Zoom from "@mui/material/Zoom";
// import { FormattedMessage } from "react-intl";
import LanguageOutlinedIcon from "@mui/icons-material/LanguageOutlined";
const LanguageSwitcher = () => {
const theme = useTheme();
const appContext = useContext(AppContext);
const currentLocale =
appContext && appContext.locale
? String(appContext.locale).toUpperCase()
: "EN";
return (
<IconButton
aria-label="Language Switcher"
onClick={() => {
const setLocale = appContext && appContext.setLocale;
if (typeof setLocale === "function") {
setLocale(appContext.locale === "en" ? "nl" : "en");
}
}}
size="large"
sx={{
alignSelf: "right",
mr: 1,
ml: 1,
color: theme.palette.text.secondary,
fontSize: "24px",
<Tooltip
title={currentLocale}
disableInteractive
slots={{
transition: Zoom,
}}>
{<LanguageOutlinedIcon />}
</IconButton>
<span>
<IconButton
aria-label="Language Switcher"
onClick={() => {
const setLocale = appContext && appContext.setLocale;
if (typeof setLocale === "function") {
setLocale(appContext.locale === "en" ? "nl" : "en");
}
}}
size="large"
sx={{
alignSelf: "right",
mr: 1,
ml: 1,
color: theme.palette.text.secondary,
fontSize: "24px",
}}>
{<LanguageOutlinedIcon />}
</IconButton>
</span>
</Tooltip>
);
};