MarketNav.tsx 958 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. 'use client';
  2. import Link from 'next/link';
  3. import { usePathname } from 'next/navigation';
  4. const TABS = [
  5. { href: '/market', label: '개요' },
  6. { href: '/market/etp', label: 'ETP' },
  7. { href: '/market/bonds', label: '채권' },
  8. { href: '/market/derivatives', label: '파생' },
  9. { href: '/market/commodities', label: '상품' },
  10. { href: '/market/esg', label: 'ESG' },
  11. { href: '/disclosure', label: '공시' }
  12. ];
  13. export default function MarketNav()
  14. {
  15. const pathname = usePathname();
  16. return (
  17. <nav className='market__nav' aria-label='시장 데이터 메뉴'>
  18. {TABS.map(tab => {
  19. const active = tab.href === '/market' ? pathname === '/market' : pathname.startsWith(tab.href);
  20. return (
  21. <Link
  22. key={tab.href}
  23. href={tab.href}
  24. className={`market__nav-link${active ? ' market__nav-link--active' : ''}`}
  25. aria-current={active ? 'page' : undefined}
  26. >
  27. {tab.label}
  28. </Link>
  29. );
  30. })}
  31. </nav>
  32. );
  33. }