@@ -18,6 +18,7 @@ interface HeaderProps {
18
18
19
19
const Header : React . FC < HeaderProps > = ( { role } ) => {
20
20
const pathname = usePathname ( ) ;
21
+
21
22
if ( pathname === '/auth/login' ) return < > </ > ;
22
23
23
24
const handleLinkClick = ( e : any ) => {
@@ -26,6 +27,8 @@ const Header: React.FC<HeaderProps> = ({ role }) => {
26
27
}
27
28
} ;
28
29
30
+ const getIsActive = ( targetPath : string ) => pathname === targetPath ;
31
+
29
32
return (
30
33
< S . HeaderWrapper >
31
34
< S . HeaderContainer >
@@ -34,41 +37,53 @@ const Header: React.FC<HeaderProps> = ({ role }) => {
34
37
< S . Title > Stack Knowledge</ S . Title >
35
38
</ S . LogoContainer >
36
39
< S . MenuNav role = { role } >
37
- < S . MenuItemWrapper href = '/' onClick = { handleLinkClick } >
40
+ < S . MenuStrokeItemWrapper href = '/' isActive = { getIsActive ( '/' ) } >
38
41
< HomeIcon />
39
42
< S . ItemTitle > 홈</ S . ItemTitle >
40
- </ S . MenuItemWrapper >
43
+ </ S . MenuStrokeItemWrapper >
44
+
41
45
{ role === 'admin' ? (
42
46
< >
43
- < S . MenuItemWrapper
47
+ < S . MenuStrokeItemWrapper
44
48
href = '/mission/scoring'
45
- onClick = { handleLinkClick }
49
+ isActive = { getIsActive ( 'mission/scoring' ) }
46
50
>
47
51
< QuestionIcon />
48
52
< S . ItemTitle > 채점하기</ S . ItemTitle >
49
- </ S . MenuItemWrapper >
50
- < S . MenuItemWrapper
53
+ </ S . MenuStrokeItemWrapper >
54
+
55
+ < S . MenuFillItemWrapper
51
56
href = '/mission/create'
52
- onClick = { handleLinkClick }
57
+ isActive = { getIsActive ( '/mission/create' ) }
53
58
>
54
59
< MadeIcon />
55
60
< S . ItemTitle > 만들기</ S . ItemTitle >
56
- </ S . MenuItemWrapper >
61
+ </ S . MenuFillItemWrapper >
57
62
</ >
58
63
) : (
59
- < S . MenuItemWrapper href = '/mission/list' onClick = { handleLinkClick } >
60
- < QuestionIcon />
61
- < S . ItemTitle > 문제</ S . ItemTitle >
62
- </ S . MenuItemWrapper >
64
+ < >
65
+ < S . MenuFillItemWrapper
66
+ href = '/mission/list'
67
+ isActive = { getIsActive ( '/mission/list' ) }
68
+ >
69
+ < QuestionIcon />
70
+ < S . ItemTitle > 문제</ S . ItemTitle >
71
+ </ S . MenuFillItemWrapper >
72
+ </ >
63
73
) }
64
- < S . MenuItemWrapper href = '/shop' onClick = { handleLinkClick } >
74
+
75
+ < S . MenuFillItemWrapper href = '/shop' isActive = { getIsActive ( '/shop' ) } >
65
76
< ShopIcon />
66
77
< S . ItemTitle > 상점</ S . ItemTitle >
67
- </ S . MenuItemWrapper >
68
- < S . MenuItemWrapper href = '/ranking' onClick = { handleLinkClick } >
78
+ </ S . MenuFillItemWrapper >
79
+
80
+ < S . MenuFillItemWrapper
81
+ href = '/ranking'
82
+ isActive = { getIsActive ( '/ranking' ) }
83
+ >
69
84
< RankingIcon />
70
85
< S . ItemTitle > 랭킹</ S . ItemTitle >
71
- </ S . MenuItemWrapper >
86
+ </ S . MenuFillItemWrapper >
72
87
</ S . MenuNav >
73
88
</ S . HeaderContainer >
74
89
</ S . HeaderWrapper >
0 commit comments