import { IconChevronRight } from '@tabler/icons-react'; import { Avatar, Group, Skeleton, Text, UnstyledButton } from '@mantine/core'; import classes from './UserButton.module.css'; import { useNavigate } from 'react-router-dom'; import { useUserInformation } from '@/app/providers/InformationProvider/useUserInformation'; import { usePublicKey } from '@/app/providers/AccountProvider/usePublicKey'; import { useAvatars } from '@/app/providers/AvatarProvider/useAvatars'; import { useEffect } from 'react'; export function UserButton() { const navigate = useNavigate(); const publicKey = usePublicKey(); const [userInfo, _, forceUpdateUserInformation] = useUserInformation(publicKey); const avatars = useAvatars(publicKey); const loading = userInfo.publicKey !== publicKey; useEffect(() => { /** * Обновляем информацию о пользователе принудительно при рендере левого меню */ forceUpdateUserInformation(); }, []); return ( navigate("/main/profile/me")}> {!loading && ( <> 0 ? avatars[0].avatar : undefined} />
{userInfo.title} {userInfo.username && ( @{userInfo.username} )}
)} {loading && ( <>
)}
); }