22 lines
728 B
TypeScript
22 lines
728 B
TypeScript
|
|
import { Routes, Route, Navigate } from 'react-router-dom';
|
||
|
|
import LoginPage from '@/pages/LoginPage';
|
||
|
|
import MainLayout from '@/layouts/MainLayout';
|
||
|
|
import Dashboard from '@/pages/Dashboard';
|
||
|
|
|
||
|
|
function RequireAuth({ children }: { children: React.ReactNode }) {
|
||
|
|
const token = localStorage.getItem('accessToken');
|
||
|
|
return token ? <>{children}</> : <Navigate to="/login" replace />;
|
||
|
|
}
|
||
|
|
|
||
|
|
export default function App() {
|
||
|
|
return (
|
||
|
|
<Routes>
|
||
|
|
<Route path="/login" element={<LoginPage />} />
|
||
|
|
<Route path="/" element={<RequireAuth><MainLayout /></RequireAuth>}>
|
||
|
|
<Route index element={<Dashboard />} />
|
||
|
|
{/* TODO: 추가 페이지는 동적 라우팅으로 확장 */}
|
||
|
|
</Route>
|
||
|
|
</Routes>
|
||
|
|
);
|
||
|
|
}
|