Revize db0f300f
Přidáno uživatelem Jaroslav Hrubý před asi 2 roky(ů)
webapp/components/navigation/AdminNavBar.tsx | ||
---|---|---|
1 |
import React, { useCallback, useContext } from 'react'; |
|
1 |
import React, { useCallback, useContext, useEffect, useState } from 'react';
|
|
2 | 2 |
import { Menu } from 'antd'; |
3 | 3 |
import { useRouter } from 'next/router'; |
4 | 4 |
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; |
... | ... | |
11 | 11 |
faTags, |
12 | 12 |
faBookmark, |
13 | 13 |
} from '@fortawesome/free-solid-svg-icons'; |
14 |
import { userController } from '../../controllers'; |
|
15 |
import { UserInfo } from '../../api'; |
|
14 | 16 |
|
15 | 17 |
const AdminNavBar = () => { |
16 | 18 |
const router = useRouter(); |
17 | 19 |
const { logout } = useContext(LoggedUserContext); |
18 | 20 |
const { SubMenu } = Menu; |
21 |
const [name, setName] = useState<string>(''); |
|
19 | 22 |
|
20 | 23 |
const handleLogout = useCallback(() => { |
21 | 24 |
logout(); |
22 | 25 |
router.push('/login'); |
23 | 26 |
}, [logout, router]); |
24 | 27 |
|
28 |
async function fetchUsername() { |
|
29 |
let usr = (await userController.usersMeGet()).data.name; |
|
30 |
setName(usr ? usr : ''); |
|
31 |
} |
|
32 |
|
|
33 |
useEffect(() => { |
|
34 |
fetchUsername(); |
|
35 |
}, []); |
|
36 |
|
|
25 | 37 |
return ( |
26 | 38 |
<Menu theme="dark" mode="horizontal"> |
27 | 39 |
<Menu.Item style={{}} key="1" onClick={() => router.push('/documents/admin')}> |
... | ... | |
37 | 49 |
<FontAwesomeIcon icon={faFileExport} /> Export |
38 | 50 |
</Menu.Item> |
39 | 51 |
|
40 |
<SubMenu |
|
41 |
icon={<FontAwesomeIcon icon={faUser} />} |
|
42 |
key="account" |
|
43 |
title={'Admin XY'} // TODO show username |
|
44 |
> |
|
52 |
<SubMenu icon={<FontAwesomeIcon icon={faUser} />} key="account" title={name}> |
|
45 | 53 |
<Menu.Item key="setting:2" onClick={() => handleLogout()}> |
46 | 54 |
Odhlásit se |
47 | 55 |
</Menu.Item> |
Také k dispozici: Unified diff
Displaying username in navigation bar