index.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { Box } from "@mui/material";
  2. import { useEffect } from "react";
  3. import { connect } from "react-redux";
  4. import { Navigate, Route, Routes } from "react-router-dom";
  5. import { actionPromiseClear } from "../../../reducers";
  6. import { actionCatAll } from "../../../actions/actionCatAll";
  7. import { CAdminCategoryTree } from "../AdminCategoryTree";
  8. import { CAdminGoodPageContainer, CAdminGoodsPageContainer, CAdminGoodsSearchPageContainer } from "./AdminGoodLayout";
  9. import { CAdminCategoriesPageContainer, CAdminCategoriesSearchPageContainer, CAdminCategoryPageContainer } from "./AdminCategoryLayout";
  10. import { CAdminOrderPageContainer, CAdminOrdersPageContainer, CAdminOrdersSearchPageContainer } from "./AdminOrderLayout";
  11. import { CAdminUserPageContainer, CAdminUsersPageContainer, CAdminUsersSearchPageContainer } from "./AdminUserLayout";
  12. const AdminCategoryTreePageContainer = ({ onLoad, onUnmount }) => {
  13. useEffect(() => {
  14. onLoad();
  15. return () => {
  16. onUnmount();
  17. };
  18. }, []);
  19. return <CAdminCategoryTree />;
  20. };
  21. const CAdminCategoryTreePageContainer = connect(null, {
  22. onUnmount: () => actionPromiseClear("catAll"),
  23. onLoad: () => actionCatAll(),
  24. })(AdminCategoryTreePageContainer);
  25. const AdminLayoutPage = () => {
  26. return (
  27. <Box className="AdminLayoutPage">
  28. <Routes>
  29. <Route path="/" element={<Navigate to={"/admin/goods/"} />} />
  30. <Route path="/tree/" element={<CAdminCategoryTreePageContainer />} />
  31. <Route path="/goods/" element={<CAdminGoodsPageContainer />} />
  32. <Route path="/goods/search" element={<CAdminGoodsSearchPageContainer />} />
  33. <Route path="/good/" element={<CAdminGoodPageContainer />} />
  34. <Route path="/good/:_id" element={<CAdminGoodPageContainer />} />
  35. <Route path="/categories/" element={<CAdminCategoriesPageContainer />} />
  36. <Route path="/categories/search" element={<CAdminCategoriesSearchPageContainer />} />
  37. <Route path="/category/" element={<CAdminCategoryPageContainer />} />
  38. <Route path="/category/:_id" element={<CAdminCategoryPageContainer />} />
  39. <Route path="/orders/" element={<CAdminOrdersPageContainer />} />
  40. <Route path="/orders/search" element={<CAdminOrdersSearchPageContainer />} />
  41. <Route path="/order/" element={<CAdminOrderPageContainer />} />
  42. <Route path="/order/:_id" element={<CAdminOrderPageContainer />} />
  43. <Route path="/users/search" element={<CAdminUsersSearchPageContainer />} />
  44. <Route path="/users/" element={<CAdminUsersPageContainer />} />
  45. <Route path="/user/" element={<CAdminUserPageContainer />} />
  46. <Route path="/user/:_id" element={<CAdminUserPageContainer />} />
  47. <Route path="*" element={<Navigate to="/404" />} />
  48. </Routes>
  49. </Box>
  50. );
  51. };
  52. export { AdminLayoutPage };