1
- import { Menu } from "antd" ;
1
+ import {
2
+ Avatar ,
3
+ Button ,
4
+ Divider ,
5
+ Dropdown ,
6
+ Menu ,
7
+ MenuProps ,
8
+ Space ,
9
+ } from "antd" ;
2
10
import { Header as AntdHeader } from "antd/es/layout/layout" ;
3
11
import { useRouter } from "next/navigation" ;
4
12
import "./styles.scss" ;
13
+ import DropdownButton from "antd/es/dropdown/dropdown-button" ;
14
+ import { LogoutOutlined , UserOutlined } from "@ant-design/icons" ;
5
15
6
16
const Header = ( ) : JSX . Element => {
7
17
const { push } = useRouter ( ) ;
@@ -18,13 +28,43 @@ const Header = (): JSX.Element => {
18
28
} ,
19
29
] ;
20
30
31
+ const profileItems : MenuProps [ "items" ] = [
32
+ {
33
+ key : 0 ,
34
+ label : (
35
+ < div className = "profile-menu-items" >
36
+ < UserOutlined className = "profile-menu-icon" /> Profile
37
+ </ div >
38
+ ) ,
39
+ onClick : ( ) => push ( "/profile" ) ,
40
+ } ,
41
+ {
42
+ type : "divider" ,
43
+ } ,
44
+ {
45
+ key : 2 ,
46
+ label : (
47
+ < div className = "profile-menu-items" >
48
+ < LogoutOutlined className = "profile-menu-icon" /> Logout
49
+ </ div >
50
+ ) ,
51
+ onClick : ( ) => {
52
+ // Clear away the previously stored jwt token in localstorage
53
+ localStorage . clear ( ) ;
54
+ // Redirect user to login page
55
+ push ( "/login" ) ;
56
+ } ,
57
+ } ,
58
+ ] ;
59
+
21
60
return (
22
61
// Header Component
23
62
< AntdHeader className = "header" >
24
63
< div className = "logo-container" >
25
64
< div className = "logo1" > Peer</ div >
26
65
< div className = "logo2" > Prep</ div >
27
66
</ div >
67
+ { /* Left Menu Pages Component */ }
28
68
< Menu
29
69
mode = "horizontal"
30
70
defaultSelectedKeys = { [ "0" ] }
@@ -34,6 +74,16 @@ const Header = (): JSX.Element => {
34
74
push ( "/" ) ;
35
75
} }
36
76
/>
77
+ < Dropdown
78
+ menu = { { items : profileItems } }
79
+ placement = "bottom"
80
+ overlayClassName = "dropdown"
81
+ >
82
+ < a onClick = { ( e ) => e . preventDefault ( ) } >
83
+ { /* Fetch and replace with first letter of user's name */ }
84
+ < Avatar > A</ Avatar >
85
+ </ a >
86
+ </ Dropdown >
37
87
</ AntdHeader >
38
88
) ;
39
89
} ;
0 commit comments