redux-paginator-immutable 17.0.32 → 17.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,53 +34,14 @@ const selectors_1 = __importDefault(require("./selectors"));
34
34
  const LoadingButton_1 = __importDefault(require("./LoadingButton"));
35
35
  const words_1 = __importDefault(require("./words"));
36
36
  const LoadPaginator = (props) => {
37
- const { token, settings } = props, { list, entities } = (0, react_redux_1.useSelector)((state) => (selectors_1.default.getPaginators(state, settings.key))),
38
- // paginator = useMemo(() => {
39
- // const
40
- // currentPage = selectors.getCurrentView(list, token),
41
- // isFetching = selectors.isPageFetching(list, token, currentPage),
42
- // isFetched = selectors.isPageFetched(list, token, currentPage),
43
- // isNextFetching = selectors.isPageFetching(list, token, currentPage + 1),
44
- // isNextFetched = selectors.isPageFetched(list, token, currentPage + 1),
45
- // eslint-disable-next-line max-len
46
- // resultsUpTo = selectors.getResultsUpToPage(list, token, entities, currentPage, settings.rowsPerLoad),
47
- // items = settings.manipulateItems(resultsUpTo),
48
- // total = selectors.getCurrentTotalResultsCount(list, token),
49
- // // currentPage was previously given to the following function
50
- // hasProblems = selectors.hasPageProblems(list, token),
51
- // shouldLoadNext = !isNextFetched && !isNextFetching;
52
- // return Immutable.Map({
53
- // currentPage,
54
- // hasProblems,
55
- // isFetched,
56
- // isFetching,
57
- // items,
58
- // shouldLoadNext,
59
- // total,
60
- // });
61
- // }, [list, entities, token]),
62
- currentPage = selectors_1.default.getCurrentView(list, token), isFetching = selectors_1.default.isPageFetching(list, token, currentPage), isFetched = selectors_1.default.isPageFetched(list, token, currentPage), isNextFetching = selectors_1.default.isPageFetching(list, token, currentPage + 1), isNextFetched = selectors_1.default.isPageFetched(list, token, currentPage + 1),
63
- // eslint-disable-next-line max-len
64
- resultsUpTo = selectors_1.default.getResultsUpToPage(list, token, entities, currentPage, settings.rowsPerLoad), items = settings.manipulateItems(resultsUpTo), total = selectors_1.default.getCurrentTotalResultsCount(list, token),
65
- // currentPage was previously given to the following function
66
- hasProblems = selectors_1.default.hasPageProblems(list, token), shouldLoadNext = !isNextFetched && !isNextFetching, paginator = Immutable.Map({
37
+ const { token, settings } = props, { list, entities } = (0, react_redux_1.useSelector)((state) => (selectors_1.default.getPaginators(state, settings.key))), currentPage = selectors_1.default.getCurrentView(list, token), isFetching = selectors_1.default.isPageFetching(list, token, currentPage), isFetched = selectors_1.default.isPageFetched(list, token, currentPage), resultsUpTo = (selectors_1.default.getResultsUpToPage(list, token, entities, currentPage, settings.rowsPerLoad)), items = settings.manipulateItems(resultsUpTo), total = selectors_1.default.getCurrentTotalResultsCount(list, token), hasProblems = selectors_1.default.hasPageProblems(list, token), paginator = Immutable.Map({
67
38
  currentPage,
68
39
  hasProblems,
69
40
  isFetched,
70
41
  isFetching,
71
42
  items,
72
- shouldLoadNext,
73
43
  total,
74
- }), dispatch = (0, react_redux_1.useDispatch)(), resetView = (currentToken) => dispatch(settings.resetView(currentToken)), changeView = (data) => dispatch(settings.changeView(data)), loadData = (page) => dispatch(settings.requestPage(page, token)),
75
- // items = paginator.get("items"),
76
- // hasProblems = paginator.get("hasProblems"),
77
- // currentPage = paginator.get("currentPage"),
78
- // isFetching = paginator.get("isFetching"),
79
- showLoading = paginator.get("total") !== items.size,
80
- // isFetched = paginator.get("isFetched"),
81
- shouldFetch = !isFetched && !isFetching, handleLoadMoreClick = () => {
82
- // const
83
- // shouldLoadNext = paginator.get("shouldLoadNext");
44
+ }), dispatch = (0, react_redux_1.useDispatch)(), resetView = (currentToken) => dispatch(settings.resetView(currentToken)), changeView = (data) => dispatch(settings.changeView(data)), loadData = (page) => dispatch(settings.requestPage(page, token)), showLoading = paginator.get("total") !== items.size, shouldFetch = !isFetched && !isFetching, handleLoadMoreClick = () => {
84
45
  if (hasProblems) {
85
46
  loadData(currentPage);
86
47
  }
@@ -89,23 +50,14 @@ const LoadPaginator = (props) => {
89
50
  token,
90
51
  view: currentPage + 1,
91
52
  });
92
- if (shouldLoadNext) {
93
- loadData(currentPage + 1);
94
- }
95
53
  }
96
54
  };
97
- // eslint-disable-next-line no-console
98
- console.log("paginator", paginator ? paginator.toJS() : null);
99
- // eslint-disable-next-line no-console
100
- console.log("list", list.toJS());
101
- // eslint-disable-next-line no-console
102
- console.log("entities", entities.toJS());
103
- (0, react_1.useEffect)(() => (() => resetView(token)), []);
104
55
  (0, react_1.useEffect)(() => {
105
56
  if (shouldFetch) {
106
57
  loadData(currentPage);
107
58
  }
108
- }, [shouldFetch, paginator]);
59
+ }, [shouldFetch]);
60
+ (0, react_1.useEffect)(() => () => resetView(token), []);
109
61
  if (items.size === 0 && isFetching) {
110
62
  return react_1.default.createElement(Messages_1.LoadingMessage, { message: words_1.default.LoadingData });
111
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LoadPaginator.js","sourceRoot":"","sources":["../src/LoadPaginator.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LoadPaginator.js","sourceRoot":"","sources":["../src/LoadPaginator.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,8 @@
1
- import React from "react";
1
+ /// <reference types="react" />
2
2
  declare type LoadingButtonPropTypes = {
3
3
  isFetching: boolean;
4
4
  hasProblems: boolean;
5
5
  onLoadMoreClick: () => void;
6
6
  };
7
- declare class LoadingButton extends React.Component<LoadingButtonPropTypes> {
8
- shouldComponentUpdate(nextProps: LoadingButtonPropTypes): boolean;
9
- render(): JSX.Element;
10
- }
7
+ declare const LoadingButton: (props: LoadingButtonPropTypes) => JSX.Element;
11
8
  export default LoadingButton;
@@ -6,17 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
7
  const Messages_1 = require("x25/Messages");
8
8
  const words_1 = __importDefault(require("./words"));
9
- class LoadingButton extends react_1.default.Component {
10
- shouldComponentUpdate(nextProps) {
11
- const { hasProblems, isFetching } = this.props;
12
- return hasProblems !== nextProps.hasProblems || isFetching !== nextProps.isFetching;
13
- }
14
- render() {
15
- const { isFetching, hasProblems, onLoadMoreClick } = this.props;
16
- return (react_1.default.createElement("div", { className: "text-center my-2" },
17
- hasProblems ? react_1.default.createElement(Messages_1.ErrorMessage, { message: words_1.default.ThereWasAProblem }) : null,
18
- isFetching ? react_1.default.createElement(Messages_1.LoadingMessage, { message: words_1.default.LoadingData, sm: true }) : (react_1.default.createElement("button", { className: "btn btn-outline-info d-print-none", disabled: isFetching, onClick: onLoadMoreClick, type: "button" }, isFetching ? words_1.default.LoadingData : words_1.default.LoadMore))));
19
- }
20
- }
9
+ const LoadingButton = (props) => {
10
+ const { isFetching, hasProblems, onLoadMoreClick } = props;
11
+ return (react_1.default.createElement("div", { className: "text-center my-2" },
12
+ hasProblems ? react_1.default.createElement(Messages_1.ErrorMessage, { message: words_1.default.ThereWasAProblem }) : null,
13
+ isFetching ? react_1.default.createElement(Messages_1.LoadingMessage, { message: words_1.default.LoadingData, sm: true }) : (react_1.default.createElement("button", { className: "btn btn-outline-info d-print-none", disabled: isFetching, onClick: onLoadMoreClick, type: "button" }, isFetching ? words_1.default.LoadingData : words_1.default.LoadMore))));
14
+ };
21
15
  exports.default = LoadingButton;
22
16
  //# sourceMappingURL=LoadingButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingButton.js","sourceRoot":"","sources":["../src/LoadingButton.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,2CAA4D;AAO5D,oDAA4B;AAE5B,MAAM,aAAc,SAAQ,eAAK,CAAC,SAAiC;IAEjE,qBAAqB,CAAE,SAAiC;QACtD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE/C,OAAO,WAAW,KAAK,SAAS,CAAC,WAAW,IAAI,UAAU,KAAK,SAAS,CAAC,UAAU,CAAC;IACtF,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEhE,OAAO,CACL,uCAAK,SAAS,EAAC,kBAAkB;YAC9B,WAAW,CAAC,CAAC,CAAC,8BAAC,uBAAY,IAAC,OAAO,EAAE,eAAK,CAAC,gBAAgB,GAAI,CAAC,CAAC,CAAC,IAAI;YACtE,UAAU,CAAC,CAAC,CAAC,8BAAC,yBAAc,IAAC,OAAO,EAAE,eAAK,CAAC,WAAW,EAAE,EAAE,SAAG,CAAC,CAAC,CAAC,CAChE,0CACE,SAAS,EAAC,mCAAmC,EAC7C,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,eAAe,EACxB,IAAI,EAAC,QAAQ,IACZ,UAAU,CAAC,CAAC,CAAC,eAAK,CAAC,WAAW,CAAC,CAAC,CAAC,eAAK,CAAC,QAAQ,CACzC,CACV,CACG,CACP,CAAC;IACJ,CAAC;CAEF;AAED,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"LoadingButton.js","sourceRoot":"","sources":["../src/LoadingButton.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,2CAA4D;AAO5D,oDAA4B;AAE5B,MAAM,aAAa,GAAG,CAAC,KAA8B,EAAE,EAAE;IACvD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAE3D,OAAO,CACL,uCAAK,SAAS,EAAC,kBAAkB;QAC9B,WAAW,CAAC,CAAC,CAAC,8BAAC,uBAAY,IAAC,OAAO,EAAE,eAAK,CAAC,gBAAgB,GAAI,CAAC,CAAC,CAAC,IAAI;QACtE,UAAU,CAAC,CAAC,CAAC,8BAAC,yBAAc,IAAC,OAAO,EAAE,eAAK,CAAC,WAAW,EAAE,EAAE,SAAG,CAAC,CAAC,CAAC,CAChE,0CACE,SAAS,EAAC,mCAAmC,EAC7C,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,eAAe,EACxB,IAAI,EAAC,QAAQ,IACZ,UAAU,CAAC,CAAC,CAAC,eAAK,CAAC,WAAW,CAAC,CAAC,CAAC,eAAK,CAAC,QAAQ,CACzC,CACV,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
package/lib/reducers.d.ts CHANGED
@@ -1,4 +1,2 @@
1
1
  import type { ItemsState, PagesState, Action } from "./types";
2
- export declare const pages: (state: PagesState, action: Action) => any;
3
- export declare const items: (state: ItemsState, action: Action) => any;
4
- export declare const dataItems: (state: ItemsState, action: Action) => any;
2
+ export declare const pages: (state: PagesState, action: Action) => any, items: (state: ItemsState, action: Action) => any, dataItems: (state: ItemsState, action: Action) => any;
package/lib/reducers.js CHANGED
@@ -44,9 +44,7 @@ const pages = (state = Immutable.Map(), action) => {
44
44
  default:
45
45
  return state;
46
46
  }
47
- };
48
- exports.pages = pages;
49
- const items = (state = Immutable.Map(), action) => {
47
+ }, items = (state = Immutable.Map(), action) => {
50
48
  switch (action.type) {
51
49
  case actionTypes_1.RECEIVE_PAGE:
52
50
  return reducerOperations.receivePageItems(state, action);
@@ -56,9 +54,7 @@ const items = (state = Immutable.Map(), action) => {
56
54
  default:
57
55
  return state;
58
56
  }
59
- };
60
- exports.items = items;
61
- const dataItems = (state = Immutable.Map(), action) => {
57
+ }, dataItems = (state = Immutable.Map(), action) => {
62
58
  switch (action.type) {
63
59
  case actionTypes_1.RECEIVE_PAGE:
64
60
  return reducerOperations.receivePageItems(state, action);
@@ -75,5 +71,5 @@ const dataItems = (state = Immutable.Map(), action) => {
75
71
  return state;
76
72
  }
77
73
  };
78
- exports.dataItems = dataItems;
74
+ exports.pages = pages, exports.items = items, exports.dataItems = dataItems;
79
75
  //# sourceMappingURL=reducers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reducers.js","sourceRoot":"","sources":["../src/reducers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAuC;AACvC,+CAUuB;AAEvB,mEAAqD;AACrD,uEAAyD;AAElD,MAAM,KAAK,GAAG,CAAC,QAAoB,SAAS,CAAC,GAAG,EAAE,EAAE,MAAc,EAAE,EAAE;IAC3E,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,0BAAY;YACf,OAAO,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,KAAK,0BAAY;YACf,OAAO,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,KAAK,wBAAU;YACb,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEpD,KAAK,yBAAW;YACd,OAAO,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAErD,KAAK,gDAAkC,CAAC;QACxC,KAAK,wBAAU;YACb,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAEvB;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,CAAC;AArBW,QAAA,KAAK,SAqBhB;AACK,MAAM,KAAK,GAAG,CAAC,QAAoB,SAAS,CAAC,GAAG,EAAE,EAAE,MAAc,EAAE,EAAE;IAC3E,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,0BAAY;YACf,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE3D,KAAK,gDAAkC,CAAC;QACxC,KAAK,wBAAU;YACb,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAEvB;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,CAAC;AAZW,QAAA,KAAK,SAYhB;AACK,MAAM,SAAS,GAAG,CAAC,QAAoB,SAAS,CAAC,GAAG,EAAE,EAAE,MAAc,EAAE,EAAE;IAC/E,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,0BAAY;YACf,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE3D,KAAK,qCAAuB;YAC1B,OAAO,eAAe,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE7D,KAAK,sCAAwB;YAC3B,OAAO,eAAe,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE9D,KAAK,uCAAyB;YAC5B,OAAO,eAAe,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE/D,KAAK,gDAAkC,CAAC;QACxC,KAAK,wBAAU;YACb,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAEvB;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,CAAC;AArBW,QAAA,SAAS,aAqBpB"}
1
+ {"version":3,"file":"reducers.js","sourceRoot":"","sources":["../src/reducers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAuC;AAEvC,+CAUuB;AAGvB,mEAAqD;AACrD,uEAAyD;AAElD,MACL,KAAK,GAAG,CAAC,QAAoB,SAAS,CAAC,GAAG,EAAE,EAAE,MAAc,EAAE,EAAE;IAC9D,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,0BAAY;YACf,OAAO,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,KAAK,0BAAY;YACf,OAAO,iBAAiB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,KAAK,wBAAU;YACb,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEpD,KAAK,yBAAW;YACd,OAAO,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAErD,KAAK,gDAAkC,CAAC;QACxC,KAAK,wBAAU;YACb,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAEvB;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,EACD,KAAK,GAAG,CAAC,QAAoB,SAAS,CAAC,GAAG,EAAE,EAAE,MAAc,EAAE,EAAE;IAC9D,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,0BAAY;YACf,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE3D,KAAK,gDAAkC,CAAC;QACxC,KAAK,wBAAU;YACb,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAEvB;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,EACD,SAAS,GAAG,CAAC,QAAoB,SAAS,CAAC,GAAG,EAAE,EAAE,MAAc,EAAE,EAAE;IAClE,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,0BAAY;YACf,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE3D,KAAK,qCAAuB;YAC1B,OAAO,eAAe,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE7D,KAAK,sCAAwB;YAC3B,OAAO,eAAe,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE9D,KAAK,uCAAyB;YAC5B,OAAO,eAAe,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE/D,KAAK,gDAAkC,CAAC;QACxC,KAAK,wBAAU;YACb,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAEvB;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC,CAAC;AAxDF,QAAA,KAAK,UAsBL,QAAA,KAAK,UAaL,QAAA,SAAS,aAqBP"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "redux-paginator-immutable",
3
- "version": "17.0.32",
3
+ "version": "17.0.35",
4
4
  "types": "./lib/index.d.ts",
5
5
  "description": "redux-paginator-immutable helps you deal with paginated API by composing your existing reducers",
6
6
  "main": "./lib/index.js",
@@ -1,4 +1,3 @@
1
-
2
1
  import React, { useEffect } from "react";
3
2
  import * as Immutable from "immutable";
4
3
  import { useDispatch, useSelector } from "react-redux";
@@ -18,45 +17,15 @@ const
18
17
  selectors.getPaginators(state, settings.key)
19
18
  )),
20
19
 
21
- // paginator = useMemo(() => {
22
- // const
23
- // currentPage = selectors.getCurrentView(list, token),
24
- // isFetching = selectors.isPageFetching(list, token, currentPage),
25
- // isFetched = selectors.isPageFetched(list, token, currentPage),
26
- // isNextFetching = selectors.isPageFetching(list, token, currentPage + 1),
27
- // isNextFetched = selectors.isPageFetched(list, token, currentPage + 1),
28
- // eslint-disable-next-line max-len
29
- // resultsUpTo = selectors.getResultsUpToPage(list, token, entities, currentPage, settings.rowsPerLoad),
30
- // items = settings.manipulateItems(resultsUpTo),
31
- // total = selectors.getCurrentTotalResultsCount(list, token),
32
- // // currentPage was previously given to the following function
33
- // hasProblems = selectors.hasPageProblems(list, token),
34
- // shouldLoadNext = !isNextFetched && !isNextFetching;
35
-
36
- // return Immutable.Map({
37
- // currentPage,
38
- // hasProblems,
39
- // isFetched,
40
- // isFetching,
41
- // items,
42
- // shouldLoadNext,
43
- // total,
44
- // });
45
- // }, [list, entities, token]),
46
-
47
-
48
20
  currentPage = selectors.getCurrentView(list, token),
49
21
  isFetching = selectors.isPageFetching(list, token, currentPage),
50
22
  isFetched = selectors.isPageFetched(list, token, currentPage),
51
- isNextFetching = selectors.isPageFetching(list, token, currentPage + 1),
52
- isNextFetched = selectors.isPageFetched(list, token, currentPage + 1),
53
- // eslint-disable-next-line max-len
54
- resultsUpTo = selectors.getResultsUpToPage(list, token, entities, currentPage, settings.rowsPerLoad),
23
+ resultsUpTo = (
24
+ selectors.getResultsUpToPage(list, token, entities, currentPage, settings.rowsPerLoad)
25
+ ),
55
26
  items = settings.manipulateItems(resultsUpTo),
56
27
  total = selectors.getCurrentTotalResultsCount(list, token),
57
- // currentPage was previously given to the following function
58
28
  hasProblems = selectors.hasPageProblems(list, token),
59
- shouldLoadNext = !isNextFetched && !isNextFetching,
60
29
 
61
30
  paginator = Immutable.Map({
62
31
  currentPage,
@@ -64,7 +33,6 @@ const
64
33
  isFetched,
65
34
  isFetching,
66
35
  items,
67
- shouldLoadNext,
68
36
  total,
69
37
  }),
70
38
 
@@ -73,18 +41,10 @@ const
73
41
  changeView : ChangeView = (data) => dispatch(settings.changeView(data)),
74
42
  loadData : LoadData = (page) => dispatch(settings.requestPage(page, token)),
75
43
 
76
- // items = paginator.get("items"),
77
- // hasProblems = paginator.get("hasProblems"),
78
- // currentPage = paginator.get("currentPage"),
79
- // isFetching = paginator.get("isFetching"),
80
44
  showLoading = paginator.get("total") !== items.size,
81
45
 
82
- // isFetched = paginator.get("isFetched"),
83
46
  shouldFetch = !isFetched && !isFetching,
84
47
  handleLoadMoreClick = () => {
85
- // const
86
- // shouldLoadNext = paginator.get("shouldLoadNext");
87
-
88
48
  if (hasProblems) {
89
49
  loadData(currentPage);
90
50
  } else {
@@ -92,31 +52,16 @@ const
92
52
  token,
93
53
  view: currentPage + 1,
94
54
  });
95
-
96
- if (shouldLoadNext) {
97
- loadData(currentPage + 1);
98
- }
99
55
  }
100
56
  };
101
57
 
102
- // eslint-disable-next-line no-console
103
- console.log("paginator", paginator ? paginator.toJS() : null);
104
-
105
- // eslint-disable-next-line no-console
106
- console.log("list", list.toJS());
107
- // eslint-disable-next-line no-console
108
- console.log("entities", entities.toJS());
109
-
110
-
111
- useEffect(() => (
112
- () => resetView(token)
113
- ), []);
114
-
115
58
  useEffect(() => {
116
59
  if (shouldFetch) {
117
60
  loadData(currentPage);
118
61
  }
119
- }, [shouldFetch, paginator]);
62
+ }, [shouldFetch]);
63
+
64
+ useEffect(() => () => resetView(token), []);
120
65
 
121
66
  if (items.size === 0 && isFetching) {
122
67
  return <LoadingMessage message={words.LoadingData} />;
@@ -8,33 +8,23 @@ type LoadingButtonPropTypes = {
8
8
  };
9
9
  import words from "./words";
10
10
 
11
- class LoadingButton extends React.Component<LoadingButtonPropTypes> {
12
-
13
- shouldComponentUpdate (nextProps: LoadingButtonPropTypes) {
14
- const { hasProblems, isFetching } = this.props;
15
-
16
- return hasProblems !== nextProps.hasProblems || isFetching !== nextProps.isFetching;
17
- }
18
-
19
- render () {
20
- const { isFetching, hasProblems, onLoadMoreClick } = this.props;
21
-
22
- return (
23
- <div className="text-center my-2">
24
- {hasProblems ? <ErrorMessage message={words.ThereWasAProblem} /> : null}
25
- {isFetching ? <LoadingMessage message={words.LoadingData} sm /> : (
26
- <button
27
- className="btn btn-outline-info d-print-none"
28
- disabled={isFetching}
29
- onClick={onLoadMoreClick}
30
- type="button">
31
- {isFetching ? words.LoadingData : words.LoadMore}
32
- </button>
33
- )}
34
- </div>
35
- );
36
- }
37
-
38
- }
11
+ const LoadingButton = (props : LoadingButtonPropTypes) => {
12
+ const { isFetching, hasProblems, onLoadMoreClick } = props;
13
+
14
+ return (
15
+ <div className="text-center my-2">
16
+ {hasProblems ? <ErrorMessage message={words.ThereWasAProblem} /> : null}
17
+ {isFetching ? <LoadingMessage message={words.LoadingData} sm /> : (
18
+ <button
19
+ className="btn btn-outline-info d-print-none"
20
+ disabled={isFetching}
21
+ onClick={onLoadMoreClick}
22
+ type="button">
23
+ {isFetching ? words.LoadingData : words.LoadMore}
24
+ </button>
25
+ )}
26
+ </div>
27
+ );
28
+ };
39
29
 
40
30
  export default LoadingButton;
package/src/reducers.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as Immutable from "immutable";
2
+
2
3
  import {
3
4
  REQUEST_PAGE,
4
5
  RECEIVE_PAGE,
@@ -10,64 +11,66 @@ import {
10
11
  FETCH_ITEM_DATA_REJECTED,
11
12
  FETCH_ITEM_DATA_FULFILLED,
12
13
  } from "./actionTypes";
14
+
13
15
  import type { ItemsState, PagesState, Action } from "./types";
14
16
  import * as reducerItemData from "./reducerItemData";
15
17
  import * as reducerOperations from "./reducerOperations";
16
18
 
17
- export const pages = (state: PagesState = Immutable.Map(), action: Action) => {
18
- switch (action.type) {
19
- case REQUEST_PAGE:
20
- return reducerOperations.requestPage(state, action);
19
+ export const
20
+ pages = (state: PagesState = Immutable.Map(), action: Action) => {
21
+ switch (action.type) {
22
+ case REQUEST_PAGE:
23
+ return reducerOperations.requestPage(state, action);
21
24
 
22
- case RECEIVE_PAGE:
23
- return reducerOperations.receivePage(state, action);
25
+ case RECEIVE_PAGE:
26
+ return reducerOperations.receivePage(state, action);
24
27
 
25
- case RESET_VIEW:
26
- return reducerOperations.resetView(state, action);
28
+ case RESET_VIEW:
29
+ return reducerOperations.resetView(state, action);
27
30
 
28
- case CHANGE_VIEW:
29
- return reducerOperations.changeView(state, action);
31
+ case CHANGE_VIEW:
32
+ return reducerOperations.changeView(state, action);
30
33
 
31
- case FETCH_CURRENT_COMPANY_INFO_PENDING:
32
- case CLEAR_DATA:
33
- return state.clear();
34
+ case FETCH_CURRENT_COMPANY_INFO_PENDING:
35
+ case CLEAR_DATA:
36
+ return state.clear();
34
37
 
35
- default:
36
- return state;
37
- }
38
- };
39
- export const items = (state: ItemsState = Immutable.Map(), action: Action) => {
40
- switch (action.type) {
41
- case RECEIVE_PAGE:
42
- return reducerOperations.receivePageItems(state, action);
38
+ default:
39
+ return state;
40
+ }
41
+ },
42
+ items = (state: ItemsState = Immutable.Map(), action: Action) => {
43
+ switch (action.type) {
44
+ case RECEIVE_PAGE:
45
+ return reducerOperations.receivePageItems(state, action);
43
46
 
44
- case FETCH_CURRENT_COMPANY_INFO_PENDING:
45
- case CLEAR_DATA:
46
- return state.clear();
47
+ case FETCH_CURRENT_COMPANY_INFO_PENDING:
48
+ case CLEAR_DATA:
49
+ return state.clear();
47
50
 
48
- default:
49
- return state;
50
- }
51
- };
52
- export const dataItems = (state: ItemsState = Immutable.Map(), action: Action) => {
53
- switch (action.type) {
54
- case RECEIVE_PAGE:
55
- return reducerOperations.receivePageItems(state, action);
51
+ default:
52
+ return state;
53
+ }
54
+ },
55
+ dataItems = (state: ItemsState = Immutable.Map(), action: Action) => {
56
+ switch (action.type) {
57
+ case RECEIVE_PAGE:
58
+ return reducerOperations.receivePageItems(state, action);
56
59
 
57
- case FETCH_ITEM_DATA_PENDING:
58
- return reducerItemData.fetchItemDataPending(state, action);
60
+ case FETCH_ITEM_DATA_PENDING:
61
+ return reducerItemData.fetchItemDataPending(state, action);
59
62
 
60
- case FETCH_ITEM_DATA_REJECTED:
61
- return reducerItemData.fetchItemDataRejected(state, action);
63
+ case FETCH_ITEM_DATA_REJECTED:
64
+ return reducerItemData.fetchItemDataRejected(state, action);
62
65
 
63
- case FETCH_ITEM_DATA_FULFILLED:
64
- return reducerItemData.fetchItemDataFulFilled(state, action);
66
+ case FETCH_ITEM_DATA_FULFILLED:
67
+ return reducerItemData.fetchItemDataFulFilled(state, action);
65
68
 
66
- case FETCH_CURRENT_COMPANY_INFO_PENDING:
67
- case CLEAR_DATA:
68
- return state.clear();
69
+ case FETCH_CURRENT_COMPANY_INFO_PENDING:
70
+ case CLEAR_DATA:
71
+ return state.clear();
69
72
 
70
- default:
71
- return state;
72
- }
73
- };
73
+ default:
74
+ return state;
75
+ }
76
+ };