feedReducer.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { actionPromise } from '.';
  2. import { actionCatAll } from '../actions/actionCatAll';
  3. import { actionGoodsFind } from '../actions/actionGoodsFind';
  4. import { actionCatsFind } from '../actions/actionCatsFind';
  5. import { actionGoodsAll } from '../actions/actionGoodsAll';
  6. import { gql } from '../helpers';
  7. import { actionOrdersAll } from '../actions/actionOrdersAll';
  8. import { actionOrdersFind } from '../actions/actionOrdersFind';
  9. function feedReducer(state = { payload: [] }, { type, payload = [] }) {
  10. if (type === 'FEED_ADD') {
  11. return {
  12. ...state,
  13. payload: [...state['payload'], ...payload],
  14. };
  15. }
  16. if (type === 'FEED_CLEAR') {
  17. return { payload: [] };
  18. }
  19. return state || { payload: [] };
  20. }
  21. const actionFeedAdd = (payload) => ({ type: 'FEED_ADD', payload });
  22. const actionFeedClear = () => ({ type: 'FEED_CLEAR' });
  23. const actionFeedGoods =
  24. (skip = 0) =>
  25. async (dispatch, getState) => {
  26. await dispatch(actionGoodsAll({ skip, limit: 50, promiseName: 'feedGoodsAll' }));
  27. };
  28. const actionFeedGoodsFind =
  29. ({ skip = 0, text = '' }) =>
  30. async (dispatch, getState) => {
  31. await dispatch(actionGoodsFind({ skip, limit: 50, promiseName: 'feedGoodsFind', text }));
  32. };
  33. const actionFeedCatsFind =
  34. ({ skip = 0, text = '' }) =>
  35. async (dispatch, getState) => {
  36. await dispatch(actionCatsFind({ skip, promiseName: 'feedCatsFind', text, limit: 50 }));
  37. };
  38. const actionFeedCats =
  39. (skip = 0) =>
  40. async (dispatch, getState) => {
  41. await dispatch(actionCatAll({ promiseName: 'feedCatAll', skip, limit: 50 }));
  42. };
  43. const actionFeedOrders =
  44. (skip = 0) =>
  45. async (dispatch, getState) => {
  46. await dispatch(actionOrdersAll({ skip, limit: 50, promiseName: 'feedOrdersAll' }));
  47. };
  48. const actionFeedOrdersFind =
  49. ({ skip = 0, text = '' }) =>
  50. async (dispatch, getState) => {
  51. await dispatch(actionOrdersFind({ skip, limit: 50, promiseName: 'feedOrdersFind', text }));
  52. };
  53. export {
  54. actionFeedCats,
  55. actionFeedCatsFind,
  56. actionFeedGoods,
  57. actionFeedClear,
  58. actionFeedAdd,
  59. actionFeedGoodsFind,
  60. feedReducer,
  61. actionFeedOrders,
  62. actionFeedOrdersFind,
  63. };