import {index, layout, route, type RouteConfig} from '@react-router/dev/routes'; /** * 라우트 표. 예전 `app/router.tsx` 의 배열이 여기로 왔다. * * ★ 순서·경로는 그대로다. 바뀐 건 선언 방식뿐이고, 페이지 컴포넌트는 손대지 않았다. * ★ 프리렌더 대상은 여기가 아니라 `react-router.config.ts` 가 정한다. * 목록에 없는 경로는 지금까지처럼 SPA 폴백으로 나간다. */ export default [ // 비로그인 = 랜딩. ★ 예전엔 로그인 여부로 갈랐는데 지금은 둘 다 랜딩이다 // (2026-09-04, 사장님 지적: 로그인하면 랜딩·요금에 갈 길이 없었다). index('pages/LandingPage.tsx'), route('login', 'pages/LoginPage.tsx'), // 로그인 화면의 [회원가입] 이 여기로 온다. 이 줄이 없으면 링크는 있고 목적지만 404 다. route('signup', 'pages/SignupPage.tsx'), // 로그인 전 화면. ★ 랜딩과 같은 껍데기(MarketingShell)를 쓴다 — 사이드바 없는 문서형이다. route('pricing', 'pages/PricingPage.tsx'), route('showcase', 'pages/ShowcasePage.tsx'), // 로그인한 사장님의 홈. 예전엔 페이지마다 로 감쌌는데, // 가드는 한 자리에 있어야 빠뜨리지 않아서 레이아웃 라우트로 모았다. layout('components/layout/RequireAuthLayout.tsx', [ route('sites', 'pages/SitesPage.tsx'), route('account', 'pages/AccountPage.tsx'), ]), /** * 빌더는 로그인 화면을 앞에 세우지 않는다 — 위저드를 열자마자 로그인부터 만나면 * 만들어 보기도 전에 막힌다. 세션은 useAutoLogin() 이 조용히 확보한다. */ route('builder', 'pages/BuilderPage.tsx'), // 개발 빌드에서만 열린다. 운영 번들에는 라우트 자체가 없다. ...(process.env.NODE_ENV !== 'production' ? [route('dev/showcase', 'pages/DevShowcasePage.tsx')] : []), route('*', 'pages/NotFoundPage.tsx'), ] satisfies RouteConfig;