ConceptPortal-public/rsconcept/frontend/src/app/navigation/user-menu.tsx

28 lines
892 B
TypeScript
Raw Normal View History

import { Suspense } from 'react';
2025-03-12 12:04:50 +03:00
import { useDropdown } from '@/components/dropdown';
import { Loader } from '@/components/loader';
import { urls } from '../urls';
2025-02-12 21:36:25 +03:00
2025-03-12 11:55:43 +03:00
import { useConceptNavigation } from './navigation-context';
import { UserButton } from './user-button';
import { UserDropdown } from './user-dropdown';
2023-07-15 17:46:19 +03:00
2025-02-19 23:30:35 +03:00
export function UserMenu() {
const router = useConceptNavigation();
2023-07-20 17:11:03 +03:00
const menu = useDropdown();
2023-07-15 17:46:19 +03:00
return (
2025-04-13 22:29:23 +03:00
<div ref={menu.ref} onBlur={menu.handleBlur} className='flex items-center justify-start relative h-full pr-2'>
<Suspense fallback={<Loader circular scale={1.5} />}>
<UserButton
onLogin={() => router.push({ path: urls.login, force: true })}
onClickUser={menu.toggle}
isOpen={menu.isOpen}
/>
</Suspense>
<UserDropdown isOpen={menu.isOpen} hideDropdown={() => menu.hide()} />
2023-12-28 14:04:44 +03:00
</div>
);
2023-07-15 17:46:19 +03:00
}