diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index ce75ba7ce..4d15234b4 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -5,7 +5,7 @@ import Navbar from "./components/Header"; import ProtectedRoute from "./guard/ProtectedRoute"; import { NotificationProvider } from "./context/NotificationContext"; import { AuthProvider } from "./context/AuthContext"; -import ToastContainer from "./components/Toast"; +import ToasContainer from "./components/Toast"; import { UserRole } from "./api"; import { WALLET_ALLOWED_ROLES } from "./constants/routeAccess"; @@ -25,6 +25,8 @@ const CertificateManagementPage = lazy( const NotificationPreferences = lazy( () => import("./pages/NotificationPreferences"), ); +const AdminUsersPage = lazy(() => import("./app/admin/users/page")); +const AdminAnalyticsPage = lazy(() => import("./pages/AdminAnalyticsPage")); const NotFound = lazy(() => import("./pages/NotFound")); // Loading fallback component @@ -41,7 +43,7 @@ function App() { return (
- +
@@ -55,7 +57,7 @@ function App() { } /> } + element={} > } /> @@ -63,7 +65,7 @@ function App() { } > @@ -75,18 +77,18 @@ function App() { /> - {/* Account routes — any authenticated user, regardless of role */} + } > @@ -97,13 +99,21 @@ function App() { /> - {/* Catch-all: must be last */} + + } + > + } /> + } /> + + + } />
- {/* Feature Overview Section */} + {showFeatureOverview && (
@@ -111,7 +121,7 @@ function App() { Secure Certificate Management
-
+

Tamper-Proof @@ -121,7 +131,7 @@ function App() { forged

-
+

Easy Issuance @@ -140,7 +150,7 @@ function App() { Verify certificates instantly with unique identifiers

-
+

Revocation List @@ -164,4 +174,4 @@ function App() { ); } -export default App; \ No newline at end of file +export default App; diff --git a/frontend/src/app/admin/users/page.tsx b/frontend/src/app/admin/users/page.tsx index 51cbce04f..713aa0533 100644 --- a/frontend/src/app/admin/users/page.tsx +++ b/frontend/src/app/admin/users/page.tsx @@ -1,8 +1,22 @@ +import { useState } from 'react'; import UserManagement from '@/components/admin/users/UserManagement'; +import { CertificateSearchBar } from '@/components/CertificateSearchBar'; +import { CsvExportButton } from '@/components/CsvExportButton'; export default function AdminUsersPage() { + const {searchQuery, setSearchQuery} = useState(''); + + const handleExport = async () => { + // TODO: implement actual CSV export + console.log('Export users with query:', searchQuery); + }; + return (
+
+ + +
);