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 React, { useContext } from "react";
import { AppContext } from "App"; import { AppContext } from "App";
import { useTheme } from "@mui/material/styles"; 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 { FormattedMessage } from "react-intl";
import LanguageOutlinedIcon from "@mui/icons-material/LanguageOutlined"; import LanguageOutlinedIcon from "@mui/icons-material/LanguageOutlined";
const LanguageSwitcher = () => { const LanguageSwitcher = () => {
const theme = useTheme(); const theme = useTheme();
const appContext = useContext(AppContext); const appContext = useContext(AppContext);
const currentLocale =
appContext && appContext.locale
? String(appContext.locale).toUpperCase()
: "EN";
return ( return (
<IconButton <Tooltip
aria-label="Language Switcher" title={currentLocale}
onClick={() => { disableInteractive
const setLocale = appContext && appContext.setLocale; slots={{
if (typeof setLocale === "function") { transition: Zoom,
setLocale(appContext.locale === "en" ? "nl" : "en");
}
}}
size="large"
sx={{
alignSelf: "right",
mr: 1,
ml: 1,
color: theme.palette.text.secondary,
fontSize: "24px",
}}> }}>
{<LanguageOutlinedIcon />} <span>
</IconButton> <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>
); );
}; };