2026-02-14 13:25:11 +09:00
|
|
|
import { BrowserRouter, Route, Routes } from 'react-router';
|
|
|
|
|
import { AuthProvider } from './auth/AuthProvider';
|
|
|
|
|
import { ProtectedRoute } from './auth/ProtectedRoute';
|
|
|
|
|
import { AdminRoute } from './auth/AdminRoute';
|
2026-02-14 17:38:28 +09:00
|
|
|
import { ThemeProvider } from './hooks/ThemeProvider';
|
2026-02-14 13:25:11 +09:00
|
|
|
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';
|
2026-02-14 17:38:28 +09:00
|
|
|
import { UserManagement } from './pages/admin/UserManagement';
|
|
|
|
|
import { RoleManagement } from './pages/admin/RoleManagement';
|
|
|
|
|
import { PermissionManagement } from './pages/admin/PermissionManagement';
|
|
|
|
|
import { StatsPage } from './pages/admin/StatsPage';
|
2026-02-14 13:25:11 +09:00
|
|
|
|
2026-02-14 12:18:24 +09:00
|
|
|
function App() {
|
|
|
|
|
return (
|
2026-02-14 17:38:28 +09:00
|
|
|
<ThemeProvider>
|
|
|
|
|
<AuthProvider>
|
|
|
|
|
<BrowserRouter>
|
|
|
|
|
<Routes>
|
|
|
|
|
{/* Public */}
|
|
|
|
|
<Route path="/login" element={<LoginPage />} />
|
|
|
|
|
<Route path="/pending" element={<PendingPage />} />
|
|
|
|
|
<Route path="/denied" element={<DeniedPage />} />
|
2026-02-14 13:25:11 +09:00
|
|
|
|
2026-02-14 17:38:28 +09:00
|
|
|
{/* Protected */}
|
|
|
|
|
<Route element={<ProtectedRoute />}>
|
|
|
|
|
<Route element={<AppLayout />}>
|
|
|
|
|
<Route index element={<HomePage />} />
|
|
|
|
|
<Route path="/dev/:section" element={<GuidePage />} />
|
2026-02-14 13:25:11 +09:00
|
|
|
|
2026-02-14 17:38:28 +09:00
|
|
|
{/* 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>
|
2026-02-14 13:25:11 +09:00
|
|
|
</Route>
|
|
|
|
|
</Route>
|
2026-02-14 17:38:28 +09:00
|
|
|
</Routes>
|
|
|
|
|
</BrowserRouter>
|
|
|
|
|
</AuthProvider>
|
|
|
|
|
</ThemeProvider>
|
2026-02-14 13:25:11 +09:00
|
|
|
);
|
2026-02-14 12:18:24 +09:00
|
|
|
}
|
|
|
|
|
|
2026-02-14 13:25:11 +09:00
|
|
|
export default App;
|