import TranslateTwoTone from '@mui/icons-material/TranslateTwoTone'; import React from 'react'; import { useMutation, useQueryClient } from 'react-query'; import Client from '../../../classes/client'; import { useSelector } from 'react-redux'; import { activeInstance } from '../../../redux/clientSlice'; import { FormattedMessage, useIntl } from 'react-intl'; import AppI18n, { LocaleCode, Locales } from '../../../classes/app-i18n'; import Tooltip from '@mui/material/Tooltip'; import Button from '@mui/material/Button'; import Menu from '@mui/material/Menu'; import MenuItem from '@mui/material/MenuItem'; import Dialog from '@mui/material/Dialog'; import DialogTitle from '@mui/material/DialogTitle'; import DialogContent from '@mui/material/DialogContent'; import DialogContentText from '@mui/material/DialogContentText'; import DialogActions from '@mui/material/DialogActions'; import Divider from '@mui/material/Divider'; const LanguageMenu = (): React.ReactElement => { const queryClient = useQueryClient(); const client: Client = useSelector(activeInstance); const [anchorEl, setAnchorEl] = React.useState(null); const [openHelpDialog, setHelpDialogOpen] = React.useState(false); const open = Boolean(anchorEl); const intl = useIntl(); const mutation = useMutation((locale: LocaleCode) => client.updateAccountLanguage(locale), { onSuccess: () => { queryClient.invalidateQueries('account'); handleClose(); }, onError: (error) => { console.error(`Unexpected error ${error}`); }, }); const handleMenu = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); }; const handleClose = () => { setAnchorEl(null); }; const handleOnClick = (event: React.MouseEvent) => { const localeCode = event.target['id']; mutation.mutate(localeCode); }; const userLocale = AppI18n.getUserLocale(); return ( {Locales.EN.label} {Locales.ES.label} {Locales.DE.label} {Locales.FR.label} {Locales.RU.label} {Locales.ZH.label} { handleClose(); setHelpDialogOpen(true); }} > {openHelpDialog && setHelpDialogOpen(false)} />} ); }; type HelpUsToTranslateDialogProp = { onClose: () => void; }; const HelpUsToTranslateDialog = ({ onClose }: HelpUsToTranslateDialogProp) => { return ( Help us to support more languages ! We need your help !. If you are interested, send us an email to team@wisemapping.com. ); }; export default LanguageMenu;