/
viktorphp
/
front-socket
Обзор
Документация
Войти
/
viktorphp
/
front-socket
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/features/profile/ui/client/ProfileButton.tsx
40 строк
1 KB
Иванов Виктор Евгеньевич
[feature-diary]: поправить баги и верстку, добавить README.md
12 апр 2026, 20:01
12 апр 2026, 20:01
0d63759
Код
Авторство
О чём код?
'use client'; import { useState } from 'react'; import { MenuItem } from '@mui/material'; import { usePathname, useRouter } from 'next/navigation'; import { useUserStore } from '@entities/user'; import { EAppRoutes } from '@shared/config'; import { useLoadingSignal } from '@shared/hooks'; export const ProfileButton = ({ handleClose }: { handleClose: () => void }) => { const { setLoading } = useLoadingSignal(); const [hovered, setHovered] = useState(false); const pathName = usePathname(); const { user } = useUserStore((state) => state); const router = useRouter(); const handleProfileClick = () => { if (pathName !== EAppRoutes.PROFILE) { setLoading(true); router.push(EAppRoutes.PROFILE); setTimeout(() => handleClose(), 400); } }; return ( <MenuItem onClick={handleProfileClick} onMouseEnter={() => setHovered(true)} onMouseLeave={() => setHovered(false)} sx={{ py: '0.6rem', px: '1rem', fontSize: '1.25rem' }} style={{ backgroundColor: hovered ? '#e0e0e0' : undefined }} > {user?.username || 'Профиль'} </MenuItem> ); };