@@ -18,6 +18,7 @@ interface HeaderProps {
1818
1919const Header : React . FC < HeaderProps > = ( { role } ) => {
2020 const pathname = usePathname ( ) ;
21+
2122 if ( pathname === '/auth/login' ) return < > </ > ;
2223
2324 const handleLinkClick = ( e : any ) => {
@@ -26,6 +27,8 @@ const Header: React.FC<HeaderProps> = ({ role }) => {
2627 }
2728 } ;
2829
30+ const getIsActive = ( targetPath : string ) => pathname === targetPath ;
31+
2932 return (
3033 < S . HeaderWrapper >
3134 < S . HeaderContainer >
@@ -34,41 +37,53 @@ const Header: React.FC<HeaderProps> = ({ role }) => {
3437 < S . Title > Stack Knowledge</ S . Title >
3538 </ S . LogoContainer >
3639 < S . MenuNav role = { role } >
37- < S . MenuItemWrapper href = '/' onClick = { handleLinkClick } >
40+ < S . MenuStrokeItemWrapper href = '/' isActive = { getIsActive ( '/' ) } >
3841 < HomeIcon />
3942 < S . ItemTitle > 홈</ S . ItemTitle >
40- </ S . MenuItemWrapper >
43+ </ S . MenuStrokeItemWrapper >
44+
4145 { role === 'admin' ? (
4246 < >
43- < S . MenuItemWrapper
47+ < S . MenuStrokeItemWrapper
4448 href = '/mission/scoring'
45- onClick = { handleLinkClick }
49+ isActive = { getIsActive ( 'mission/scoring' ) }
4650 >
4751 < QuestionIcon />
4852 < S . ItemTitle > 채점하기</ S . ItemTitle >
49- </ S . MenuItemWrapper >
50- < S . MenuItemWrapper
53+ </ S . MenuStrokeItemWrapper >
54+
55+ < S . MenuFillItemWrapper
5156 href = '/mission/create'
52- onClick = { handleLinkClick }
57+ isActive = { getIsActive ( '/mission/create' ) }
5358 >
5459 < MadeIcon />
5560 < S . ItemTitle > 만들기</ S . ItemTitle >
56- </ S . MenuItemWrapper >
61+ </ S . MenuFillItemWrapper >
5762 </ >
5863 ) : (
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+ </ >
6373 ) }
64- < S . MenuItemWrapper href = '/shop' onClick = { handleLinkClick } >
74+
75+ < S . MenuFillItemWrapper href = '/shop' isActive = { getIsActive ( '/shop' ) } >
6576 < ShopIcon />
6677 < 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+ >
6984 < RankingIcon />
7085 < S . ItemTitle > 랭킹</ S . ItemTitle >
71- </ S . MenuItemWrapper >
86+ </ S . MenuFillItemWrapper >
7287 </ S . MenuNav >
7388 </ S . HeaderContainer >
7489 </ S . HeaderWrapper >
0 commit comments