Files
web-page/src/routes.jsx
gahusb 1bd680e47f chore(nav): 사이드바 메뉴 순서 재배치
Home → Portfolio → Blog → Travel → Lotto → Stock → Music → Realestate
→ Blog Lab → Todo → Agent Office → Lab 순으로 navLinks 재정렬.
BottomNav도 동일 source를 사용해 모바일 더보기 패널까지 함께 반영됨.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 02:28:16 +09:00

204 lines
5.2 KiB
JavaScript

import React, { lazy } from 'react';
import {
IconHome,
IconBlog,
IconLotto,
IconStock,
IconBuilding,
IconTravel,
IconMusic,
IconLab,
IconTodo,
IconBlogMarketing,
IconPortfolio,
} from './components/Icons';
const Home = lazy(() => import('./pages/home/Home'));
const Blog = lazy(() => import('./pages/blog/Blog'));
const Lotto = lazy(() => import('./pages/lotto/Lotto'));
const Travel = lazy(() => import('./pages/travel/Travel'));
const Stock = lazy(() => import('./pages/stock/Stock'));
const StockTrade = lazy(() => import('./pages/stock/StockTrade'));
const Subscription = lazy(() => import('./pages/subscription/Subscription'));
const EffectLab = lazy(() => import('./pages/effect-lab/EffectLab'));
const SwordStream = lazy(() => import('./pages/effect-lab/SwordStream'));
const DayCalc = lazy(() => import('./pages/effect-lab/DayCalc'));
const Todo = lazy(() => import('./pages/todo/Todo'));
const MusicStudio = lazy(() => import('./pages/music/MusicStudio'));
const BlogMarketing = lazy(() => import('./pages/blog-marketing/BlogMarketing'));
const Portfolio = lazy(() => import('./pages/portfolio/Portfolio'));
export const navLinks = [
{
id: 'home',
label: 'Home',
path: '/',
subtitle: 'PERSONAL ARCHIVE',
description: '첫 인상과 최신 업데이트를 모아둔 허브',
icon: <IconHome />,
accent: '#f7a8a5',
},
{
id: 'portfolio',
label: 'Portfolio',
path: '/portfolio',
subtitle: 'RESUME',
description: '개인 포트폴리오 — 프로필, 이력, 프로젝트 쇼케이스',
icon: <IconPortfolio />,
accent: '#06b6d4',
},
{
id: 'blog',
label: 'Blog',
path: '/blog',
subtitle: 'JOURNAL',
description: '생각과 기록, 코드 스니펫을 모으는 공간',
icon: <IconBlog />,
accent: '#c084fc',
},
{
id: 'travel',
label: 'Travel',
path: '/travel',
subtitle: 'VISUAL DIARY',
description: '여행에서 담은 색과 장면을 전시하는 갤러리',
icon: <IconTravel />,
accent: '#fb923c',
},
{
id: 'lotto',
label: 'Lotto',
path: '/lotto',
subtitle: 'PLAYGROUND',
description: '숫자를 뽑고 통계를 확인하는 실험실',
icon: <IconLotto />,
accent: '#34d399',
},
{
id: 'stock',
label: 'Stock',
path: '/stock',
subtitle: '마켓 랩',
description: '아침 시장 흐름을 확인하는 주식 연구실',
icon: <IconStock />,
accent: '#60a5fa',
},
{
id: 'music',
label: 'Music',
path: '/music',
subtitle: 'SONIC FORGE',
description: 'AI로 세상에 하나뿐인 음악을 만드는 스튜디오',
icon: <IconMusic />,
accent: '#f5a623',
},
{
id: 'realestate',
label: 'Realestate',
path: '/realestate',
subtitle: '부동산',
description: '청약 공고 자동 수집, 매칭, 프로필 기반 자격 분석',
icon: <IconBuilding />,
accent: '#f43f5e',
},
{
id: 'blog-lab',
label: 'Blog Lab',
path: '/blog-lab',
subtitle: 'MONETIZE',
description: 'AI 블로그 마케팅으로 수익을 만드는 연구소',
icon: <IconBlogMarketing />,
accent: '#10b981',
},
{
id: 'todo',
label: 'Todo',
path: '/todo',
subtitle: 'TASK BOARD',
description: '할 일을 관리하는 태스크 보드',
icon: <IconTodo />,
accent: '#f472b6',
},
{
id: 'agent-office',
label: 'Agent Office',
path: '/agent-office',
subtitle: 'AI LAB',
description: 'AI 에이전트 사무실',
icon: <span style={{fontSize:'1.2em'}}>🏢</span>,
accent: '#8b5cf6',
},
{
id: 'lab',
label: 'Lab',
path: '/lab',
subtitle: 'STREAM',
description: '실험적인 UI/UX 효과를 테스트하는 공간',
icon: <IconLab />,
accent: '#fbbf24',
},
];
export const appRoutes = [
{
index: true,
element: <Home />,
},
{
path: 'blog',
element: <Blog />,
},
{
path: 'lotto',
element: <Lotto />,
},
{
path: 'stock',
element: <Stock />,
},
{
path: 'stock/trade',
element: <StockTrade />,
},
{
path: 'realestate',
element: <Subscription />,
},
{
path: 'travel',
element: <Travel />,
},
{
path: 'lab',
element: <EffectLab />,
},
{
path: 'lab/sword-stream',
element: <SwordStream />,
},
{
path: 'lab/day-calc',
element: <DayCalc />,
},
{
path: 'music',
element: <MusicStudio />,
},
{
path: 'blog-lab',
element: <BlogMarketing />,
},
{
path: 'todo',
element: <Todo />,
},
{
path: 'portfolio',
element: <Portfolio />,
},
{
path: 'agent-office',
lazy: () => import('./pages/agent-office/AgentOffice'),
},
];