Magnus Smari Smarason 7c3d65dadf
Some checks failed
Build, Lint, and Deploy Arctic Species Portal / test-and-build (push) Failing after 1m0s
Build, Lint, and Deploy Arctic Species Portal / deploy (push) Has been skipped
Fixed CRUD operations for CITES listings, common names, and IUCN assessments. Added admin routes and authentication context. Updated UI components and added new pages for admin functionalities.
2025-05-17 20:58:29 +00:00

77 lines
3.5 KiB
TypeScript

import { Routes, Route } from 'react-router-dom';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { AuthProvider } from './contexts/auth/AuthContext';
import { AdminRoute } from './components/auth/AdminRoute';
// Public pages
import { HomePage } from '@/pages/home';
// import SpeciesDetail from './pages/species-detail'; // This will be created later
// Admin pages
import AdminLogin from '@/pages/admin/login';
import AdminDashboard from '@/pages/admin/dashboard';
import SpeciesList from '@/pages/admin/species/list';
import SpeciesEdit from '@/pages/admin/species/edit';
import SpeciesCreate from '@/pages/admin/species/create';
import CitesListingsList from '@/pages/admin/cites-listings/list';
import CitesListingsEdit from '@/pages/admin/cites-listings/edit';
import CitesListingsCreate from '@/pages/admin/cites-listings/create';
import IucnAssessmentsList from '@/pages/admin/iucn-assessments/list';
import IucnAssessmentsEdit from '@/pages/admin/iucn-assessments/edit';
import IucnAssessmentsCreate from '@/pages/admin/iucn-assessments/create';
import CommonNamesList from '@/pages/admin/common-names/list';
import CommonNamesEdit from '@/pages/admin/common-names/edit';
import CommonNamesCreate from '@/pages/admin/common-names/create';
// ...other admin page imports
const queryClient = new QueryClient();
function App() {
return (
<QueryClientProvider client={queryClient}>
<AuthProvider>
<div className="min-h-screen bg-background">
<Routes>
{/* Public routes */}
<Route path="/" element={<HomePage />} />
{/* <Route path="/species/:id" element={<SpeciesDetail />} /> */}
{/* Admin authentication */}
<Route path="/admin/login" element={<AdminLogin />} />
{/* Protected admin routes */}
<Route element={<AdminRoute />}>
<Route path="/admin" element={<AdminDashboard />} />
{/* Species management */}
<Route path="/admin/species" element={<SpeciesList />} />
<Route path="/admin/species/create" element={<SpeciesCreate />} />
<Route path="/admin/species/:id/edit" element={<SpeciesEdit />} />
{/* CITES listings management */}
<Route path="/admin/cites-listings" element={<CitesListingsList />} />
<Route path="/admin/cites-listings/create" element={<CitesListingsCreate />} />
<Route path="/admin/cites-listings/:id/edit" element={<CitesListingsEdit />} />
{/* IUCN Assessments management */}
<Route path="/admin/iucn-assessments" element={<IucnAssessmentsList />} />
<Route path="/admin/iucn-assessments/create" element={<IucnAssessmentsCreate />} />
<Route path="/admin/iucn-assessments/:id/edit" element={<IucnAssessmentsEdit />} />
{/* Common Names management */}
<Route path="/admin/common-names" element={<CommonNamesList />} />
<Route path="/admin/common-names/create" element={<CommonNamesCreate />} />
<Route path="/admin/common-names/:id/edit" element={<CommonNamesEdit />} />
{/* Other admin routes... */}
</Route>
<Route path="*" element={<div className="container p-8 text-center">Page not found</div>} />
</Routes>
</div>
</AuthProvider>
</QueryClientProvider>
);
}
export default App;