ConceptPortal-public/rsconcept/frontend/src/app/Navigation/UserButton.tsx

39 lines
1.1 KiB
TypeScript
Raw Normal View History

import { useAuthSuspense } from '@/features/auth';
2025-02-12 21:36:25 +03:00
import { IconLogin, IconUser2 } from '@/components/Icons';
import { usePreferencesStore } from '@/stores/preferences';
2025-02-19 23:30:35 +03:00
import { NavigationButton } from './NavigationButton';
interface UserButtonProps {
onLogin: () => void;
onClickUser: () => void;
isOpen: boolean;
}
export function UserButton({ onLogin, onClickUser, isOpen }: UserButtonProps) {
const { user, isAnonymous } = useAuthSuspense();
const adminMode = usePreferencesStore(state => state.adminMode);
if (isAnonymous) {
return (
<NavigationButton
className='cc-fade-in'
title='Перейти на страницу логина'
icon={<IconLogin size='1.5rem' className='icon-primary' />}
onClick={onLogin}
/>
);
} else {
return (
<NavigationButton
className='cc-fade-in'
title='Пользователь'
aria-haspopup='true'
aria-expanded={isOpen}
icon={<IconUser2 size='1.5rem' className={adminMode && user.is_staff ? 'icon-primary' : ''} />}
onClick={onClickUser}
/>
);
}
}