import { Avatar, Group, Menu, Text, UnstyledButton } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { modals } from '@mantine/modals'; import cx from 'clsx'; import { useTranslation } from 'react-i18next'; import { TbChevronDown, TbLogout, TbSettings, TbShield } from 'react-icons/tb'; import { InternalLinkUnstyled } from '~/components/common/links/internal_link_unstyled'; import { UserPreferences } from '~/components/common/user_preferences/user_preferences'; import { useAuth } from '~/hooks/use_auth'; import classes from './user_dropdown.module.css'; export function UserDropdown() { const auth = useAuth(); const [userMenuOpened, { open: openUserMenu, close: closeUserMenu }] = useDisclosure(false); const { t } = useTranslation(); const handlePreferencesModal = () => { modals.open({ title: t('user-preferences'), children: , }); }; return ( {auth.user?.fullname} {auth.user?.isAdmin && ( <> {t('common:admin')} } component={InternalLinkUnstyled} href="/admin" color="red" > {t('common:manage-users')} )} {t('common:settings')} } onClick={handlePreferencesModal} > {t('common:preferences')} } component={InternalLinkUnstyled} href="/auth/logout" > {t('common:logout')} ); }