import TranslateTwoTone from '@material-ui/icons/TranslateTwoTone'; import React from 'react'; import { useMutation, useQueryClient } from 'react-query'; import Client from '../../../classes/client'; import { useSelector } from 'react-redux'; import { activeInstance, fetchAccount } from '../../../redux/clientSlice'; import { FormattedMessage, useIntl } from 'react-intl'; import { LocaleCode, Locales } from '../../../classes/app-i18n'; import Tooltip from '@material-ui/core/Tooltip'; import Button from '@material-ui/core/Button'; import Menu from '@material-ui/core/Menu'; import MenuItem from '@material-ui/core/MenuItem'; import Dialog from '@material-ui/core/Dialog'; import DialogTitle from '@material-ui/core/DialogTitle'; import DialogContent from '@material-ui/core/DialogContent'; import DialogContentText from '@material-ui/core/DialogContentText'; import DialogActions from '@material-ui/core/DialogActions'; import Divider from '@material-ui/core/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 accountInfo = fetchAccount(); return ( {Locales.EN.label} {Locales.ES.label} {Locales.DE.label} {Locales.FR.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;