import AccountCircle from '@mui/icons-material/AccountCircle'; import AppSettingsAlt from '@mui/icons-material/AppSettingsAlt'; import Close from '@mui/icons-material/Close'; import DashboardIcon from '@mui/icons-material/Dashboard'; import Edit from '@mui/icons-material/Edit'; import Logout from '@mui/icons-material/Logout'; import PhonelinkLock from '@mui/icons-material/PhonelinkLock'; import Settings from '@mui/icons-material/Settings'; import Storage from '@mui/icons-material/Storage'; import Divider from '@mui/material/Divider'; import ListItemIcon from '@mui/material/ListItemIcon'; import ListItemText from '@mui/material/ListItemText'; import Menu, { MenuProps } from '@mui/material/Menu'; import MenuItem from '@mui/material/MenuItem'; import React, { FC, useCallback } from 'react'; import { Link } from 'react-router-dom'; import { appHost } from 'components/apphost'; import { useApi } from 'hooks/useApi'; import globalize from 'scripts/globalize'; import Dashboard from 'utils/dashboard'; import { useQuickConnectEnabled } from 'hooks/useQuickConnect'; export const ID = 'app-user-menu'; interface AppUserMenuProps extends MenuProps { onMenuClose: () => void } const AppUserMenu: FC = ({ anchorEl, open, onMenuClose }) => { const { user } = useApi(); const { data: isQuickConnectEnabled } = useQuickConnectEnabled(); const onClientSettingsClick = useCallback(() => { window.NativeShell?.openClientSettings(); onMenuClose(); }, [ onMenuClose ]); const onExitAppClick = useCallback(() => { appHost.exit(); onMenuClose(); }, [ onMenuClose ]); const onLogoutClick = useCallback(() => { Dashboard.logout(); onMenuClose(); }, [ onMenuClose ]); const onSelectServerClick = useCallback(() => { Dashboard.selectServer(); onMenuClose(); }, [ onMenuClose ]); return ( {globalize.translate('Profile')} {globalize.translate('Settings')} {appHost.supports('clientsettings') && ([ , {globalize.translate('ClientSettings')} ])} {/* ADMIN LINKS */} {user?.Policy?.IsAdministrator && ([ , , ])} {isQuickConnectEnabled && ( {globalize.translate('QuickConnect')} )} {appHost.supports('multiserver') && ( {globalize.translate('SelectServer')} )} {globalize.translate('ButtonSignOut')} {appHost.supports('exitmenu') && ([ , {globalize.translate('ButtonExitApp')} ])} ); }; export default AppUserMenu;