Router.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { HashRouter as Router, Routes, Route } from 'react-router-dom';
  2. import { useContext } from 'react';
  3. import { authContext } from '@/context';
  4. import Databases from '@/pages/databases/Databases';
  5. import Connect from '@/pages/connect/Connect';
  6. import Users from '@/pages/user/UsersAndRoles';
  7. import Index from '@/pages/index';
  8. import Search from '@/pages/search/VectorSearch';
  9. import System from '@/pages/system/SystemView';
  10. import SystemHealthy from '@/pages/systemHealthy/SystemHealthyView';
  11. const RouterComponent = () => {
  12. const { isManaged, isDedicated } = useContext(authContext);
  13. const enableManageUsers = !isManaged || isDedicated;
  14. return (
  15. <Router>
  16. <Routes>
  17. <Route path="/" element={<Index />}>
  18. <Route path="databases" element={<Databases />} />
  19. <Route path="databases/:databaseName" element={<Databases />} />
  20. <Route
  21. path="databases/:databaseName/:databasePage"
  22. element={<Databases />}
  23. />
  24. <Route
  25. path="databases/:databaseName/:collectionName/:collectionPage"
  26. element={<Databases />}
  27. />
  28. <Route path="search" element={<Search />} />
  29. <Route path="system_healthy" element={<SystemHealthy />} />
  30. {enableManageUsers && (
  31. <>
  32. <Route path="users" element={<Users />} />
  33. <Route path="roles" element={<Users />} />
  34. <Route path="privilege-groups" element={<Users />} />
  35. </>
  36. )}
  37. {!isManaged && <Route path="system" element={<System />} />}
  38. </Route>
  39. <Route path="connect" element={<Connect />} />
  40. </Routes>
  41. </Router>
  42. );
  43. };
  44. export default RouterComponent;