Browse Source

+CAdminCategoriesPageContainer ->actionAdminCategoriesPage

ilya_shyian 1 year ago
parent
commit
2c6f33dfa2

+ 10 - 0
src/actions/actionAdminCategoriesPage.js

@@ -0,0 +1,10 @@
+import { actionFeedCats, actionFeedClear, actionPromiseClear } from "../reducers";
+
+export const actionAdminCategoriesPage =
+    ({ skip = 0, orderBy = "_id" }) =>
+    async (dispatch, getState) => {
+        dispatch(actionFeedClear());
+        dispatch(actionPromiseClear("feedCatAll"));
+        dispatch(actionPromiseClear("categoryUpsert"));
+        dispatch(actionFeedCats({ skip: 0, orderBy }));
+    };

+ 7 - 0
src/actions/actionAdminCategoriesPageClear.js

@@ -0,0 +1,7 @@
+import { actionFeedClear, actionPromiseClear } from "../reducers";
+
+export const actionAdminCategoriesPageClear = () => async (dispatch, getState) => {
+    dispatch(actionFeedClear());
+    dispatch(actionPromiseClear("feedCatAll"));
+    dispatch(actionPromiseClear("categoryUpsert"));
+};

+ 1 - 1
src/actions/actionAdminCategoryPage.js

@@ -8,7 +8,7 @@ export const actionAdminCategoryPage =
     async (dispatch, getState) => {
         dispatch(actionGoodsAll());
         dispatch(actionCatAll());
-        console.log(1);
+
         if (_id) {
             dispatch(actionCatById({ _id, promiseName: "adminCatById" }));
         } else {

+ 1 - 5
src/actions/actionAdminCategoryPageClear.js

@@ -1,8 +1,4 @@
-import { gql } from "../helpers";
-import { actionPromise, actionPromiseClear } from "../reducers";
-import { actionCatAll } from "./actionCatAll";
-import { actionCatById } from "./actionCatById";
-import { actionGoodsAll } from "./actionGoodsAll";
+import { actionPromiseClear } from "../reducers";
 
 export const actionAdminCategoryPageClear = () => async (dispatch, getState) => {
     dispatch(actionPromiseClear("goodsAll"));

+ 23 - 19
src/components/admin/AdminLayoutPage/index.js

@@ -36,6 +36,8 @@ import { CAdminUserPage } from "../AdminUserPage.js";
 import { actionUserById } from "../../../actions/actionUserById";
 import { actioAdminCategoryPage, actionAdminCategoryPage } from "../../../actions/actionAdminCategoryPage";
 import { actionAdminCategoryPageClear } from "../../../actions/actionAdminCategoryPageClear";
+import { actionAdminCategoriesPage } from "../../../actions/actionAdminCategoriesPage";
+import { actionAdminCategoriesPageClear } from "../../../actions/actionAdminCategoriesPageClear";
 
 const AdminCategoryTreePageContainer = ({ onLoad, onUnmount }) => {
     useEffect(() => {
@@ -74,37 +76,31 @@ const CAdminCategoryPageContainer = connect(null, {
     onLoad: (_id) => actionAdminCategoryPage({ _id }),
 })(AdminCategoryPageContainer);
 
-const AdminCategoriesPageContainer = ({ cats }) => {
+const AdminCategoriesPageContainer = ({ feed, cats, promiseStatus, onLoad, onUnmount }) => {
     const dispatch = useDispatch();
     const [searchParams] = useSearchParams();
     const orderBy = searchParams.get("orderBy") || "_id";
 
     useEffect(() => {
-        dispatch(actionFeedClear());
-        dispatch(actionPromiseClear("feedCatAll"));
-        dispatch(actionPromiseClear("categoryUpsert"));
-        dispatch(actionFeedCats({ skip: 0, orderBy }));
+        onLoad({ skip: 0, orderBy });
+
+        return () => {
+            onUnmount();
+        };
     }, [orderBy]);
 
     useEffect(() => {
         window.onscroll = (e) => {
             if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 200) {
-                const {
-                    feed,
-                    promise: { feedCatAll },
-                } = store.getState();
-                if (feedCatAll.status !== "PENDING") {
-                    dispatch(actionFeedCats(feed.payload?.length || 0, orderBy));
+                if (promiseStatus !== "PENDING") {
+                    dispatch(actionFeedCats({ skip: feed?.length || 0, orderBy }));
                 }
             }
         };
         return () => {
-            dispatch(actionFeedClear());
-            dispatch(actionPromiseClear("feedCatAll"));
-            dispatch(actionPromiseClear("categoryUpsert"));
             window.onscroll = null;
         };
-    }, []);
+    }, [feed, promiseStatus]);
 
     useEffect(() => {
         if (cats.length) dispatch(actionFeedAdd(cats));
@@ -113,6 +109,18 @@ const AdminCategoriesPageContainer = ({ cats }) => {
     return <AdminCategoriesPage orderBy={orderBy} />;
 };
 
+const CAdminCategoriesPageContainer = connect(
+    (state) => ({
+        cats: state.promise?.feedCatAll?.payload || [],
+        feed: state.feed?.payload || [],
+        promiseStatus: state.promise?.feedCatAll?.status || null,
+    }),
+    {
+        onUnmount: () => actionAdminCategoriesPageClear(),
+        onLoad: ({ skip, orderBy }) => actionAdminCategoriesPage({ skip, orderBy }),
+    }
+)(AdminCategoriesPageContainer);
+
 const AdminCategoriesSearchPageContainer = () => {
     const categories = useSelector((state) => state.promise?.feedCatsFind?.payload || []);
     const dispatch = useDispatch();
@@ -464,10 +472,6 @@ const CAdminGoodsPageContainer = connect((state) => ({ goods: state.promise?.fee
 
 const CAdminOrdersPageContainer = connect((state) => ({ orders: state.promise?.feedOrdersAll?.payload || [] }))(AdminOrdersPageContainer);
 
-const CAdminCategoriesPageContainer = connect((state) => ({ cats: state.promise?.feedCatAll?.payload || [] }))(
-    AdminCategoriesPageContainer
-);
-
 const CAdminUsersPageContainer = connect((state) => ({ users: state.promise?.feedUsersAll?.payload || [] }))(AdminUsersPageContainer);
 
 const AdminLayoutPage = () => {

+ 1 - 1
src/reducers/feedReducer.js

@@ -51,7 +51,7 @@ const actionFeedCatsFind =
 const actionFeedCats =
     ({ skip = 0, orderBy = "_id" }) =>
     async (dispatch, getState) => {
-        await dispatch(actionCatAll({ promiseName: "feedCatAll", skip, limit: 15, orderBy }));
+        await dispatch(actionCatAll({ promiseName: "feedCatAll", skip, limit: 2, orderBy }));
     };
 
 const actionFeedOrders =