Skip to content

Commit e182a68

Browse files
feat: 메뉴 네비게이션 추가
1 parent d003ec3 commit e182a68

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

src/shared/component/Layout/Header/Header.tsx

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,31 @@
11
import { useState } from 'react';
2+
import { useNavigate } from 'react-router-dom';
23

34
import * as styles from './Header.css';
45

5-
const MENUS = ['나의 할 일', '나의 만다르트', '나의 히스토리'];
6+
import { PATH } from '@/route/path';
7+
8+
const MENUS = [
9+
{ label: '나의 할 일', path: PATH.TODO },
10+
{ label: '나의 만다르트', path: PATH.MANDAL },
11+
{ label: '나의 히스토리', path: PATH.HISTORY },
12+
];
613

714
const Header = () => {
8-
const [activeMenu, setActiveMenu] = useState<string>(MENUS[0]);
15+
const [activeMenu, setActiveMenu] = useState<string>(MENUS[0].label);
916
const [isLoggedIn, setIsLoggedIn] = useState<boolean>(false);
17+
const navigate = useNavigate();
1018

1119
const handleLogin = () => {
1220
// 로그인 로직 추가하기
1321
setIsLoggedIn(true);
1422
};
1523

24+
const handleMenuClick = (menuLabel: string, path: string) => {
25+
setActiveMenu(menuLabel);
26+
navigate(path);
27+
};
28+
1629
return (
1730
<header className={styles.header}>
1831
<div className={styles.headerInner}>
@@ -21,12 +34,12 @@ const Header = () => {
2134
<nav className={styles.navWrapper}>
2235
{MENUS.map((menu) => (
2336
<button
24-
key={menu}
25-
className={`${styles.navItem} ${activeMenu === menu ? styles.navItemActive : ''}`}
26-
onClick={() => setActiveMenu(menu)}
27-
aria-current={activeMenu === menu ? 'page' : undefined}
37+
key={menu.label}
38+
className={`${styles.navItem} ${activeMenu === menu.label ? styles.navItemActive : ''}`}
39+
onClick={() => handleMenuClick(menu.label, menu.path)}
40+
aria-current={activeMenu === menu.label ? 'page' : undefined}
2841
>
29-
{menu}
42+
{menu.label}
3043
</button>
3144
))}
3245
</nav>

0 commit comments

Comments
 (0)