Router.tsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. import Play from '@/pages/play/Play';
  12. const RouterComponent = () => {
  13. const { isManaged, isDedicated } = useContext(authContext);
  14. const enableManageUsers = !isManaged || isDedicated;
  15. return (
  16. <Router>
  17. <Routes>
  18. <Route path="/" element={<Index />}>
  19. <Route path="databases" element={<Databases />} />
  20. <Route path="databases/:databaseName" element={<Databases />} />
  21. <Route
  22. path="databases/:databaseName/:databasePage"
  23. element={<Databases />}
  24. />
  25. <Route
  26. path="databases/:databaseName/:collectionName/:collectionPage"
  27. element={<Databases />}
  28. />
  29. <Route path="search" element={<Search />} />
  30. <Route path="system_healthy" element={<SystemHealthy />} />
  31. {enableManageUsers && (
  32. <>
  33. <Route path="users" element={<Users />} />
  34. <Route path="roles" element={<Users />} />
  35. <Route path="privilege-groups" element={<Users />} />
  36. </>
  37. )}
  38. <Route path="play" element={<Play />} />
  39. {!isManaged && <Route path="system" element={<System />} />}
  40. </Route>
  41. <Route path="connect" element={<Connect />} />
  42. </Routes>
  43. </Router>
  44. );
  45. };
  46. export default RouterComponent;