App.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { Route, Routes } from "react-router-dom";
  2. import LayoutPublic from "./components/LayoutPublic";
  3. import './App.css';
  4. import HomePage from "./components/public-pages/HomePage";
  5. import CategoryOnePage from "./components/public-pages/CategoryOnePage";
  6. import { CssBaseline } from "@mui/material";
  7. import ProductOnePage from "./components/public-pages/ProductOnePage";
  8. import LoginPage from "./components/public-pages/LoginPage"
  9. import ProfilePage from "./components/public-pages/ProfilePage";
  10. import Registration from "./components/public-pages/Registration";
  11. import RequireAuth from "./hoc/RequireAuth";
  12. import NoRequireAuth from "./hoc/NoRequireAuth";
  13. import LayoutAdmin from "./components/adminPage/LayoutAdmin";
  14. function App() {
  15. return (
  16. <>
  17. <CssBaseline />
  18. <Routes>
  19. <Route path='*' element={<LayoutPublic />}>
  20. <Route index element={<HomePage/>}/>
  21. <Route path='*' element={<p>Страница не найдена</p>}/>
  22. <Route path="about" element={<p>о магазине</p>}/>
  23. <Route path="category/:catId/*" element={<CategoryOnePage/>}/>
  24. <Route path="product/:prodId/*" element={<ProductOnePage/>}/>
  25. <Route path="login" element={
  26. <NoRequireAuth>
  27. <LoginPage/>
  28. </NoRequireAuth>
  29. }/>
  30. <Route path="profile" element={
  31. <RequireAuth>
  32. <ProfilePage/>
  33. </RequireAuth>
  34. }/>
  35. <Route path="registration" element={
  36. <NoRequireAuth>
  37. <Registration/>
  38. </NoRequireAuth>
  39. }/>
  40. </Route>
  41. <Route path='admin' element={<LayoutAdmin />}>
  42. <Route index element={<p>index</p>}/>
  43. <Route path='*' element={<p>Страница не найдена</p>}/>
  44. </Route>
  45. {/* <Route path='admin/*' element={
  46. <RequireAuthIsAdmin>
  47. <p>админка</p>
  48. </RequireAuthIsAdmin>
  49. /> */}
  50. </Routes>
  51. </>
  52. );
  53. }
  54. export default App;