import type { MenuProps } from 'antd'; import { selectToken, selectUserInfo } from '@/features/auth/authStore'; import { useRouter } from '@/features/router'; const UserAvatar = memo(() => { const token = useAppSelector(selectToken); const { t } = useTranslation(); const userInfo = useAppSelector(selectUserInfo); const { navigate } = useRouter(); function logout() { window?.$modal?.confirm({ cancelText: t('common.cancel'), content: t('common.logoutConfirm'), okText: t('common.confirm'), onOk: () => { navigate('/login-out'); }, title: t('common.tip') }); } function onClick({ key }: { key: string }) { if (key === '1') { logout(); } else { navigate('/user-center'); } } function loginOrRegister() { navigate('/login'); } const items: MenuProps['items'] = [ { key: '0', label: (
{t('common.userCenter')}
) }, { type: 'divider' }, { key: '1', label: (
{t('common.logout')}
) } ]; return token ? (
{userInfo.userName}
) : ( {t('page.login.common.loginOrRegister')} ); }); export default UserAvatar;