gc-guide/src/App.tsx

51 lines
1.9 KiB
TypeScript
Raw Normal View 히스토리

import { BrowserRouter, Route, Routes } from 'react-router';
import { AuthProvider } from './auth/AuthProvider';
import { ProtectedRoute } from './auth/ProtectedRoute';
import { AdminRoute } from './auth/AdminRoute';
import { ThemeProvider } from './hooks/ThemeProvider';
import { AppLayout } from './components/layout/AppLayout';
import { LoginPage } from './pages/LoginPage';
import { PendingPage } from './pages/PendingPage';
import { DeniedPage } from './pages/DeniedPage';
import { HomePage } from './pages/HomePage';
import { GuidePage } from './pages/GuidePage';
import { UserManagement } from './pages/admin/UserManagement';
import { RoleManagement } from './pages/admin/RoleManagement';
import { PermissionManagement } from './pages/admin/PermissionManagement';
import { StatsPage } from './pages/admin/StatsPage';
function App() {
return (
<ThemeProvider>
<AuthProvider>
<BrowserRouter>
<Routes>
{/* Public */}
<Route path="/login" element={<LoginPage />} />
<Route path="/pending" element={<PendingPage />} />
<Route path="/denied" element={<DeniedPage />} />
{/* Protected */}
<Route element={<ProtectedRoute />}>
<Route element={<AppLayout />}>
<Route index element={<HomePage />} />
<Route path="/dev/:section" element={<GuidePage />} />
{/* Admin */}
<Route element={<AdminRoute />}>
<Route path="/admin/users" element={<UserManagement />} />
<Route path="/admin/roles" element={<RoleManagement />} />
<Route path="/admin/permissions" element={<PermissionManagement />} />
<Route path="/admin/stats" element={<StatsPage />} />
</Route>
</Route>
</Route>
</Routes>
</BrowserRouter>
</AuthProvider>
</ThemeProvider>
);
}
export default App;