import { Box, Link, Menu, MenuItem, Typography } from '@mui/material'; import { useMatch, useNavigate, useRouter } from '@tanstack/react-router'; import { t } from 'i18next'; import { FC, useState } from 'react'; import { Trans } from 'react-i18next/TransWithoutContext'; import { useApi } from '../../../api/Api'; import { ROUTES } from '../../../types/Routes'; import RegisterDialog from '../../Dialogs/Register/RegisterDialog'; import LoginForm from '../../Forms/Login/LoginForm'; interface Props { anchorEl: HTMLElement | null; handleClose: () => void; } const UserMenu: FC = ({ anchorEl, handleClose }) => { const [register, setRegister] = useState(false); const navigate = useNavigate(); const router = useRouter(); const match = useMatch({ from: '/profile/', strict: true, shouldThrow: false }); const Api = useApi(); const _handleClose = () => { setRegister(false); handleClose(); }; return ( {Api.authenticatedUser ? ( [ { navigate({ to: ROUTES.PROFILE }); _handleClose(); }} > {t('Profile')} , { await Api.logOut(); router.invalidate(); _handleClose(); }} > {t('Log out')} , ] ) : register ? ( setRegister(false)} /> ) : ( { setRegister(true); handleClose(); }} /> )} ); }; export default UserMenu;