Revize 8c45ccb0
Přidáno uživatelem hrubyjar před asi 2 roky(ů)
webapp/components/navigation/AdminNavBar.tsx | ||
---|---|---|
1 |
/** |
|
2 |
* Creates a navigation bar of an admin. |
|
3 |
* @returns Navigation bar of an admin. |
|
4 |
*/ |
|
5 |
export function AdminNavBar() { |
|
1 |
import React, { useCallback, useContext } from 'react'; |
|
2 |
import { Menu } from 'antd'; |
|
3 |
import { useRouter } from 'next/router'; |
|
4 |
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; |
|
5 |
import { LoggedUserContext } from '../../contexts/LoggedUserContext'; |
|
6 |
import { |
|
7 |
faUser, |
|
8 |
faFileExport, |
|
9 |
faFileLines, |
|
10 |
faUsers, |
|
11 |
faTags, |
|
12 |
faBookmark, |
|
13 |
} from '@fortawesome/free-solid-svg-icons'; |
|
14 |
|
|
15 |
const UserNavBar = () => { |
|
16 |
const router = useRouter(); |
|
17 |
const { logout } = useContext(LoggedUserContext); |
|
18 |
const { SubMenu } = Menu; |
|
19 |
|
|
20 |
const handleLogout = useCallback(() => { |
|
21 |
logout(); |
|
22 |
router.push('/login'); |
|
23 |
}, [logout, router]); |
|
24 |
|
|
6 | 25 |
return ( |
7 |
<div> |
|
8 |
<p>Navigation bar of an admin.</p> |
|
9 |
</div> |
|
26 |
<Menu theme="dark" mode="horizontal"> |
|
27 |
<Menu.Item style={{}} key="1" onClick={() => router.push('/documents/admin')}> |
|
28 |
<FontAwesomeIcon icon={faFileLines} /> Dokumenty |
|
29 |
</Menu.Item> |
|
30 |
<Menu.Item style={{}} key="2" onClick={() => router.push('/users')}> |
|
31 |
<FontAwesomeIcon icon={faUsers} /> Uživatelé |
|
32 |
</Menu.Item> |
|
33 |
<Menu.Item style={{}} key="3" onClick={() => router.push('/tags')}> |
|
34 |
<FontAwesomeIcon icon={faTags} /> Značky |
|
35 |
</Menu.Item> |
|
36 |
<Menu.Item style={{}} key="4" onClick={() => router.push('/classes')}> |
|
37 |
<FontAwesomeIcon icon={faBookmark} /> Třídy |
|
38 |
</Menu.Item> |
|
39 |
<Menu.Item style={{}} key="5" onClick={() => router.push('/export')}> |
|
40 |
<FontAwesomeIcon icon={faFileExport} /> Export |
|
41 |
</Menu.Item> |
|
42 |
|
|
43 |
<SubMenu |
|
44 |
icon={<FontAwesomeIcon icon={faUser} />} |
|
45 |
key="account" |
|
46 |
title={'Admin XY'} // TODO show username |
|
47 |
> |
|
48 |
<Menu.Item key="setting:2" onClick={() => handleLogout()}> |
|
49 |
Odhlásit se |
|
50 |
</Menu.Item> |
|
51 |
</SubMenu> |
|
52 |
</Menu> |
|
10 | 53 |
); |
11 |
} |
|
54 |
}; |
|
55 |
|
|
56 |
export default UserNavBar; |
Také k dispozici: Unified diff
Token management implemented, redirections