redux-paginator-immutable 17.0.6 → 17.0.20

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.
Files changed (106) hide show
  1. package/lib/Info.d.ts +9 -0
  2. package/lib/Info.js +19 -41
  3. package/lib/Info.js.map +1 -0
  4. package/lib/LoadDataItem.d.ts +23 -0
  5. package/lib/LoadDataItem.js +59 -110
  6. package/lib/LoadDataItem.js.map +1 -0
  7. package/lib/LoadPaginator.d.ts +41 -0
  8. package/lib/LoadPaginator.js +109 -216
  9. package/lib/LoadPaginator.js.map +1 -0
  10. package/lib/LoadingButton.d.ts +11 -0
  11. package/lib/LoadingButton.js +22 -75
  12. package/lib/LoadingButton.js.map +1 -0
  13. package/lib/actionTypes.d.ts +9 -0
  14. package/lib/actionTypes.js +13 -16
  15. package/lib/actionTypes.js.map +1 -0
  16. package/lib/actions.d.ts +42 -0
  17. package/lib/actions.js +82 -136
  18. package/lib/actions.js.map +1 -0
  19. package/lib/agent.d.ts +8 -0
  20. package/lib/agent.js +37 -86
  21. package/lib/agent.js.map +1 -0
  22. package/lib/createDataReducer.d.ts +14 -0
  23. package/lib/createDataReducer.js +60 -79
  24. package/lib/createDataReducer.js.map +1 -0
  25. package/lib/createItemReducer.d.ts +9 -0
  26. package/lib/createItemReducer.js +14 -32
  27. package/lib/createItemReducer.js.map +1 -0
  28. package/lib/createPaginator.d.ts +14 -0
  29. package/lib/createPaginator.js +83 -140
  30. package/lib/createPaginator.js.map +1 -0
  31. package/lib/index.d.ts +11 -0
  32. package/lib/index.js +30 -58
  33. package/lib/index.js.map +1 -0
  34. package/lib/paginatorMiddleware.d.ts +5 -0
  35. package/lib/paginatorMiddleware.js +68 -102
  36. package/lib/paginatorMiddleware.js.map +1 -0
  37. package/lib/reducerItemData.d.ts +18 -0
  38. package/lib/reducerItemData.js +56 -63
  39. package/lib/reducerItemData.js.map +1 -0
  40. package/lib/reducerOperations.d.ts +3 -0
  41. package/lib/reducerOperations.js +69 -114
  42. package/lib/reducerOperations.js.map +1 -0
  43. package/lib/reducers.d.ts +4 -0
  44. package/lib/reducers.js +75 -87
  45. package/lib/reducers.js.map +1 -0
  46. package/lib/selectors.d.ts +58 -0
  47. package/lib/selectors.js +79 -129
  48. package/lib/selectors.js.map +1 -0
  49. package/lib/types/actions.d.ts +85 -0
  50. package/lib/types/actions.js +3 -1
  51. package/lib/types/actions.js.map +1 -0
  52. package/lib/types/index.d.ts +21 -0
  53. package/lib/types/index.js +16 -29
  54. package/lib/types/index.js.map +1 -0
  55. package/lib/types/state.d.ts +6 -0
  56. package/lib/types/state.js +3 -1
  57. package/lib/types/state.js.map +1 -0
  58. package/lib/util.d.ts +9 -0
  59. package/lib/util.js +49 -73
  60. package/lib/util.js.map +1 -0
  61. package/lib/words.d.ts +9 -0
  62. package/lib/words.js +12 -15
  63. package/lib/words.js.map +1 -0
  64. package/package.json +35 -21
  65. package/src/Info.tsx +29 -0
  66. package/src/LoadDataItem.tsx +84 -0
  67. package/src/{LoadPaginator.jsx → LoadPaginator.tsx} +77 -94
  68. package/src/LoadingButton.tsx +40 -0
  69. package/src/__tests__/createPaginator.spec.js +6 -6
  70. package/src/__tests__/reducers.spec.js +28 -28
  71. package/src/__tests__/selectors.spec.js +80 -81
  72. package/src/{actionTypes.js → actionTypes.ts} +0 -4
  73. package/src/actions.ts +157 -0
  74. package/src/agent.ts +62 -0
  75. package/src/createDataReducer.ts +91 -0
  76. package/src/{createItemReducer.js → createItemReducer.ts} +7 -13
  77. package/src/createPaginator.ts +107 -0
  78. package/src/{index.js → index.ts} +0 -13
  79. package/src/paginatorMiddleware.ts +93 -0
  80. package/src/reducerItemData.ts +74 -0
  81. package/src/reducerOperations.ts +101 -0
  82. package/src/{reducers.js → reducers.ts} +9 -18
  83. package/src/selectors.ts +113 -0
  84. package/src/types/{actions.js → actions.ts} +27 -39
  85. package/src/types/{index.js → index.ts} +3 -13
  86. package/src/types/{state.js → state.ts} +3 -6
  87. package/src/util.ts +51 -0
  88. package/src/{words.js → words.ts} +0 -2
  89. package/lib/__tests__/actions.spec.js +0 -117
  90. package/lib/__tests__/agent.spec.js +0 -32
  91. package/lib/__tests__/createPaginator.spec.js +0 -39
  92. package/lib/__tests__/reducers.spec.js +0 -126
  93. package/lib/__tests__/selectors.spec.js +0 -162
  94. package/lib/__tests__/setup.js +0 -3
  95. package/src/Info.jsx +0 -34
  96. package/src/LoadDataItem.jsx +0 -116
  97. package/src/LoadingButton.jsx +0 -55
  98. package/src/actions.js +0 -153
  99. package/src/agent.js +0 -55
  100. package/src/createDataReducer.js +0 -94
  101. package/src/createPaginator.js +0 -131
  102. package/src/paginatorMiddleware.js +0 -94
  103. package/src/reducerItemData.jsx +0 -64
  104. package/src/reducerOperations.jsx +0 -112
  105. package/src/selectors.js +0 -143
  106. package/src/util.js +0 -71
package/lib/Info.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ declare type InfoPropTypes = {
3
+ shown: number;
4
+ total: number;
5
+ one: string;
6
+ all: string;
7
+ };
8
+ declare const Info: ({ shown, total, one, all }: InfoPropTypes) => JSX.Element;
9
+ export default Info;
package/lib/Info.js CHANGED
@@ -1,41 +1,19 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _react = require("react");
8
-
9
- var _react2 = _interopRequireDefault(_react);
10
-
11
- var _utility = require("x25/utility");
12
-
13
- var _words = require("./words");
14
-
15
- var _words2 = _interopRequireDefault(_words);
16
-
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
-
19
- var getNumberForm = function getNumberForm(value, one, all) {
20
- if (value === 1) {
21
- return "1 " + one;
22
- }
23
-
24
- return _utility.words.getNumberTense(value) + " " + all;
25
- };
26
-
27
- var Info = function Info(_ref) {
28
- var shown = _ref.shown,
29
- total = _ref.total,
30
- one = _ref.one,
31
- all = _ref.all;
32
- return _react2.default.createElement(
33
- "div",
34
- { className: "text-muted" },
35
- _words2.default.Showing + " ",
36
- shown === total ? _words2.default.All + " - " : shown + " " + _words2.default.Of,
37
- " " + getNumberForm(total, one, all)
38
- );
39
- };
40
-
41
- exports.default = Info;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const utility_1 = require("x25/utility");
8
+ const words_1 = __importDefault(require("./words"));
9
+ const getNumberForm = (value, one, all) => {
10
+ if (value === 1) {
11
+ return `1 ${one}`;
12
+ }
13
+ return `${utility_1.words.getNumberTense(value)} ${all}`;
14
+ }, Info = ({ shown, total, one, all }) => (react_1.default.createElement("div", { className: "text-muted" },
15
+ `${words_1.default.Showing} `,
16
+ shown === total ? `${words_1.default.All} - ` : `${shown} ${words_1.default.Of}`,
17
+ ` ${getNumberForm(total, one, all)}`));
18
+ exports.default = Info;
19
+ //# sourceMappingURL=Info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Info.js","sourceRoot":"","sources":["../src/Info.tsx"],"names":[],"mappings":";;;;;AAOA,kDAA0B;AAC1B,yCAAgD;AAChD,oDAA4B;AAE5B,MACE,aAAa,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAU,EAAE;IAClE,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,KAAK,GAAG,EAAE,CAAC;KACnB;IAED,OAAO,GAAG,eAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;AACpD,CAAC,EAED,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAiB,EAAE,EAAE,CAAC,CACpD,uCAAK,SAAS,EAAC,YAAY;IACxB,GAAG,eAAK,CAAC,OAAO,GAAG;IACnB,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,eAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,eAAK,CAAC,EAAE,EAAE;IAC5D,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CACjC,CACP,CAAC;AAEJ,kBAAe,IAAI,CAAC"}
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ declare type LoadDataItemPropTypes = {
3
+ isFetching: boolean;
4
+ fetched: boolean;
5
+ id: string;
6
+ hasError: boolean;
7
+ data: any;
8
+ children: React.ReactNode;
9
+ shouldFetch: any;
10
+ fetchItem: () => void;
11
+ };
12
+ declare type OwnProps = {
13
+ id: string;
14
+ settings: {
15
+ selectors: any;
16
+ dataItemURL: string;
17
+ endpoint: string;
18
+ manageEntity: any;
19
+ normalizeDataItem: any;
20
+ };
21
+ };
22
+ declare const _default: import("react-redux").ConnectedComponent<(props: LoadDataItemPropTypes) => any, import("react-redux").Omit<LoadDataItemPropTypes, "data" | "hasError" | "fetched" | "isFetching" | "shouldFetch" | "fetchItem"> & OwnProps>;
23
+ export default _default;
@@ -1,110 +1,59 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
-
9
- // import {
10
- // useLocation,
11
- // useNavigate,
12
- // useParams,
13
- // } from "react-router-dom";
14
-
15
- // const withRouter = (Component) => {
16
- // const ComponentWithRouterProp = (props) => {
17
- // const location = useLocation();
18
- // const navigate = useNavigate();
19
- // const params = useParams();
20
-
21
- // return (
22
- // <Component
23
- // {...props}
24
- // router={{
25
- // location,
26
- // navigate,
27
- // params,
28
- // }}
29
- // />
30
- // );
31
- // };
32
-
33
- // return ComponentWithRouterProp;
34
- // };
35
-
36
- var _react = require("react");
37
-
38
- var React = _interopRequireWildcard(_react);
39
-
40
- var _reactRedux = require("react-redux");
41
-
42
- var _actions = require("./actions");
43
-
44
- var _Messages = require("x25/Messages");
45
-
46
- var _words = require("./words");
47
-
48
- var _words2 = _interopRequireDefault(_words);
49
-
50
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
51
-
52
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
53
-
54
- var mapStateToProps = function mapStateToProps(state, _ref) {
55
- var selectors = _ref.settings.selectors,
56
- id = _ref.id;
57
- return {
58
- data: selectors.getItem(state, id),
59
- hasError: selectors.getItemHasError(state, id),
60
- fetched: selectors.getItemIsFetched(state, id),
61
- isFetching: selectors.getIsFetchingItemInfo(state, id),
62
- shouldFetch: selectors.getShouldFetchItemInfo(state, id)
63
- };
64
- },
65
- mapDispatchToProps = function mapDispatchToProps(dispatch, _ref2) {
66
- var id = _ref2.id,
67
- settings = _ref2.settings;
68
- return {
69
- fetchItem: function fetchItem() {
70
- dispatch((0, _actions.fetchItem)(_extends({}, settings, {
71
- id: id
72
- })));
73
- }
74
- };
75
- };
76
-
77
- var LoadDataItem = function LoadDataItem(props) {
78
- var children = props.children,
79
- data = props.data,
80
- isFetching = props.isFetching,
81
- shouldFetch = props.shouldFetch,
82
- hasError = props.hasError,
83
- fetchItem = props.fetchItem;
84
-
85
-
86
- React.useEffect(function () {
87
- if (shouldFetch) {
88
- fetchItem();
89
- }
90
- }, [shouldFetch, isFetching, hasError]);
91
-
92
- if (isFetching) {
93
- return React.createElement(_Messages.LoadingMessage, { message: _words2.default.LoadingData });
94
- }
95
-
96
- if (hasError) {
97
- return React.createElement(_Messages.LargeErrorMessage, {
98
- message: _words2.default.ThereWasAProblem,
99
- onRetry: fetchItem
100
- });
101
- }
102
-
103
- if (data.size === 0) {
104
- return null;
105
- }
106
-
107
- return children;
108
- };
109
-
110
- exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(LoadDataItem);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const React = __importStar(require("react"));
26
+ const react_redux_1 = require("react-redux");
27
+ const Messages_1 = require("x25/Messages");
28
+ const actions_1 = require("./actions");
29
+ const words_1 = __importDefault(require("./words"));
30
+ const mapStateToProps = (state, { settings: { selectors, }, id, }) => ({
31
+ data: selectors.getItem(state, id),
32
+ hasError: selectors.getItemHasError(state, id),
33
+ fetched: selectors.getItemIsFetched(state, id),
34
+ isFetching: selectors.getIsFetchingItemInfo(state, id),
35
+ shouldFetch: selectors.getShouldFetchItemInfo(state, id),
36
+ }), mapDispatchToProps = (dispatch, { id, settings, }) => ({
37
+ fetchItem() {
38
+ dispatch((0, actions_1.fetchItem)(Object.assign(Object.assign({}, settings), { id })));
39
+ },
40
+ }), LoadDataItem = (props) => {
41
+ const { children, data, isFetching, shouldFetch, hasError, fetchItem, } = props;
42
+ React.useEffect(() => {
43
+ if (shouldFetch) {
44
+ fetchItem();
45
+ }
46
+ }, [shouldFetch, isFetching, hasError]);
47
+ if (isFetching) {
48
+ return React.createElement(Messages_1.LoadingMessage, { message: words_1.default.LoadingData });
49
+ }
50
+ if (hasError) {
51
+ return React.createElement(Messages_1.LargeErrorMessage, { message: words_1.default.ThereWasAProblem, onRetry: fetchItem });
52
+ }
53
+ if (data.size === 0) {
54
+ return null;
55
+ }
56
+ return children;
57
+ };
58
+ exports.default = (0, react_redux_1.connect)(mapStateToProps, mapDispatchToProps)(LoadDataItem);
59
+ //# sourceMappingURL=LoadDataItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadDataItem.js","sourceRoot":"","sources":["../src/LoadDataItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAsB/B,6CAAsC;AACtC,2CAAiE;AACjE,uCAAyD;AACzD,oDAA4B;AAE5B,MACE,eAAe,GAAG,CAAC,KAAU,EAAE,EAC7B,QAAQ,EAAE,EACR,SAAS,GACV,EACD,EAAE,GACO,EAAE,EAAE,CAAC,CAAC;IACf,IAAI,EAAU,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1C,QAAQ,EAAM,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;IAClD,OAAO,EAAO,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC;IACnD,UAAU,EAAI,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;IACxD,WAAW,EAAG,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,EAAE,CAAC;CAC1D,CAAC,EACF,kBAAkB,GAAG,CAAC,QAAa,EAAE,EACnC,EAAE,EACF,QAAQ,GACC,EAAE,EAAE,CAAC,CAAC;IACf,SAAS;QACP,QAAQ,CAAC,IAAA,mBAAe,kCACnB,QAAQ,KACX,EAAE,IACF,CAAC,CAAC;IACN,CAAC;CACF,CAAC,EAEF,YAAY,GAAG,CAAC,KAA4B,EAAQ,EAAE;IACpD,MAAM,EACJ,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,WAAW,EAAE;YACf,SAAS,EAAE,CAAC;SACb;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExC,IAAI,UAAU,EAAE;QACd,OAAO,oBAAC,yBAAc,IAAC,OAAO,EAAE,eAAK,CAAC,WAAW,GAAI,CAAC;KACvD;IAED,IAAI,QAAQ,EAAE;QACZ,OAAO,oBAAC,4BAAiB,IAAC,OAAO,EAAE,eAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,GAAI,CAAC;KACnF;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;QACnB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEJ,kBAAe,IAAA,qBAAO,EAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import React, { Component } from "react";
2
+ declare type Settings = {
3
+ key: string;
4
+ rowsPerLoad: number;
5
+ manipulateItems: (items: any) => void;
6
+ resetView: (data: any) => void;
7
+ changeView: (data: any) => void;
8
+ requestPage: (page: string, token: string) => any;
9
+ };
10
+ declare type OwnProps = {
11
+ token: string;
12
+ settings: Settings;
13
+ };
14
+ declare type LoadPaginatorPropTypes = {
15
+ token: string;
16
+ children: any;
17
+ settings: Settings;
18
+ paginator: any;
19
+ changeView: (info: {
20
+ token: string;
21
+ view: number;
22
+ }) => void;
23
+ resetView: (token: string) => void;
24
+ loadData: (page: number) => void;
25
+ changeFilter: (filter: string) => (event: {
26
+ target: {
27
+ value: string;
28
+ };
29
+ }) => void;
30
+ };
31
+ declare class LoadPaginator extends Component<LoadPaginatorPropTypes> {
32
+ handleLoadMoreClick: () => any;
33
+ componentDidMount(): void;
34
+ UNSAFE_componentWillReceiveProps(nextProps: LoadPaginatorPropTypes): void;
35
+ constructor(props: LoadPaginatorPropTypes);
36
+ shouldComponentUpdate(nextProps: LoadPaginatorPropTypes): boolean;
37
+ componentWillUnmount(): void;
38
+ render(): JSX.Element;
39
+ }
40
+ declare const _default: import("react-redux").ConnectedComponent<typeof LoadPaginator, import("react-redux").Omit<React.ClassAttributes<LoadPaginator> & LoadPaginatorPropTypes, "paginator" | "changeView" | "resetView" | "loadData"> & OwnProps>;
41
+ export default _default;
@@ -1,216 +1,109 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
-
7
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
-
9
- var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
10
- /* eslint-disable */
11
-
12
- var _react = require("react");
13
-
14
- var _react2 = _interopRequireDefault(_react);
15
-
16
- var _immutable = require("immutable");
17
-
18
- var Immutable = _interopRequireWildcard(_immutable);
19
-
20
- var _reactRedux = require("react-redux");
21
-
22
- var _redux = require("redux");
23
-
24
- var _selectors = require("./selectors");
25
-
26
- var _selectors2 = _interopRequireDefault(_selectors);
27
-
28
- var _LoadingButton = require("./LoadingButton");
29
-
30
- var _LoadingButton2 = _interopRequireDefault(_LoadingButton);
31
-
32
- var _Messages = require("x25/Messages");
33
-
34
- var _words = require("./words");
35
-
36
- var _words2 = _interopRequireDefault(_words);
37
-
38
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
39
-
40
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
-
42
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
43
-
44
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
45
-
46
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
47
-
48
- var mapStateToProps = function mapStateToProps(state, _ref) {
49
- var token = _ref.token,
50
- settings = _ref.settings;
51
-
52
- var _selectors$getPaginat = _selectors2.default.getPaginators(state, settings.key),
53
- list = _selectors$getPaginat.list,
54
- entities = _selectors$getPaginat.entities;
55
-
56
- var currentPage = _selectors2.default.getCurrentView(list, token),
57
- isFetching = _selectors2.default.isPageFetching(list, token, currentPage),
58
- isFetched = _selectors2.default.isPageFetched(list, token, currentPage),
59
- isNextFetching = _selectors2.default.isPageFetching(list, token, currentPage + 1),
60
- isNextFetched = _selectors2.default.isPageFetched(list, token, currentPage + 1),
61
- resultsUpTo = _selectors2.default.getResultsUpToPage(list, token, entities, currentPage, settings.rowsPerLoad),
62
- items = settings.manipulateItems(resultsUpTo),
63
- total = _selectors2.default.getCurrentTotalResultsCount(list, token),
64
- hasProblems = _selectors2.default.hasPageProblems(list, token, currentPage);
65
-
66
- var shouldLoadNext = !isNextFetched && !isNextFetching;
67
-
68
- return {
69
- paginator: Immutable.Map({
70
- currentPage: currentPage,
71
- hasProblems: hasProblems,
72
- isFetched: isFetched,
73
- isFetching: isFetching,
74
- items: items,
75
- shouldLoadNext: shouldLoadNext,
76
- total: total
77
- })
78
- };
79
- },
80
- mapDispatchToProps = function mapDispatchToProps(dispatch, _ref2) {
81
- var token = _ref2.token,
82
- settings = _ref2.settings;
83
- return _extends({}, (0, _redux.bindActionCreators)({
84
- resetView: settings.resetView,
85
- changeView: settings.changeView
86
- }, dispatch), {
87
- loadData: function loadData(page) {
88
- dispatch(settings.requestPage(page, token));
89
- }
90
- });
91
- };
92
-
93
- var LoadPaginator = function (_Component) {
94
- _inherits(LoadPaginator, _Component);
95
-
96
- function LoadPaginator(props) {
97
- _classCallCheck(this, LoadPaginator);
98
-
99
- var _this = _possibleConstructorReturn(this, (LoadPaginator.__proto__ || Object.getPrototypeOf(LoadPaginator)).call(this, props));
100
-
101
- _this.handleLoadMoreClick = function () {
102
- var _this$props = _this.props,
103
- paginator = _this$props.paginator,
104
- token = _this$props.token,
105
- changeView = _this$props.changeView,
106
- loadData = _this$props.loadData;
107
-
108
-
109
- var currentPage = paginator.get("currentPage"),
110
- hasProblems = paginator.get("hasProblems"),
111
- shouldLoadNext = paginator.get("shouldLoadNext");
112
-
113
- if (hasProblems) {
114
- loadData(currentPage);
115
- } else {
116
- changeView({
117
- token: token,
118
- view: currentPage + 1
119
- });
120
-
121
- if (shouldLoadNext) {
122
- loadData(currentPage + 1);
123
- }
124
- }
125
- };
126
- return _this;
127
- }
128
-
129
- _createClass(LoadPaginator, [{
130
- key: "UNSAFE_componentWillMount",
131
- value: function UNSAFE_componentWillMount() {
132
- var _props = this.props,
133
- paginator = _props.paginator,
134
- loadData = _props.loadData;
135
-
136
-
137
- var isFetched = paginator.get("isFetched"),
138
- isFetching = paginator.get("isFetching"),
139
- currentPage = paginator.get("currentPage");
140
-
141
- var shouldFetch = !isFetched && !isFetching;
142
-
143
- if (shouldFetch) {
144
- loadData(currentPage);
145
- }
146
- }
147
- }, {
148
- key: "UNSAFE_componentWillReceiveProps",
149
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
150
- var loadData = nextProps.loadData,
151
- paginator = nextProps.paginator;
152
-
153
-
154
- var isFetched = paginator.get("isFetched"),
155
- isFetching = paginator.get("isFetching"),
156
- currentPage = paginator.get("currentPage");
157
-
158
- var shouldFetch = !isFetched && !isFetching;
159
-
160
- if (shouldFetch) {
161
- loadData(currentPage);
162
- }
163
- }
164
- }, {
165
- key: "shouldComponentUpdate",
166
- value: function shouldComponentUpdate(nextProps) {
167
- return this.props.paginator !== nextProps.paginator;
168
- }
169
- }, {
170
- key: "componentWillUnmount",
171
- value: function componentWillUnmount() {
172
- this.props.resetView(this.props.token);
173
- }
174
- }, {
175
- key: "render",
176
- value: function render() {
177
- var paginator = this.props.paginator;
178
-
179
-
180
- var items = paginator.get("items"),
181
- hasProblems = paginator.get("hasProblems"),
182
- currentPage = paginator.get("currentPage"),
183
- isFetching = paginator.get("isFetching"),
184
- total = paginator.get("total");
185
-
186
- var isEmpty = items.size === 0,
187
- showLoading = total !== items.size;
188
-
189
- if (isEmpty && isFetching) {
190
- return _react2.default.createElement(_Messages.LoadingMessage, { message: _words2.default.LoadingData });
191
- }
192
-
193
- if (hasProblems && currentPage === 1) {
194
- return _react2.default.createElement(_Messages.LargeErrorMessage, {
195
- message: _words2.default.ThereWasAProblem,
196
- onRetry: this.handleLoadMoreClick
197
- });
198
- }
199
-
200
- return _react2.default.createElement(
201
- _react2.default.Fragment,
202
- null,
203
- _react2.default.cloneElement(this.props.children, this.props),
204
- showLoading ? _react2.default.createElement(_LoadingButton2.default, {
205
- hasProblems: hasProblems,
206
- isFetching: isFetching,
207
- onLoadMoreClick: this.handleLoadMoreClick
208
- }) : null
209
- );
210
- }
211
- }]);
212
-
213
- return LoadPaginator;
214
- }(_react.Component);
215
-
216
- exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(LoadPaginator);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const react_1 = __importStar(require("react"));
26
+ const Immutable = __importStar(require("immutable"));
27
+ const react_redux_1 = require("react-redux");
28
+ const redux_1 = require("redux");
29
+ const Messages_1 = require("x25/Messages");
30
+ const selectors_1 = __importDefault(require("./selectors"));
31
+ const LoadingButton_1 = __importDefault(require("./LoadingButton"));
32
+ const words_1 = __importDefault(require("./words"));
33
+ const mapStateToProps = (state, { token, settings }) => {
34
+ const { list, entities } = 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), isNextFetching = selectors_1.default.isPageFetching(list, token, currentPage + 1), isNextFetched = selectors_1.default.isPageFetched(list, token, currentPage + 1),
35
+ // eslint-disable-next-line max-len
36
+ resultsUpTo = selectors_1.default.getResultsUpToPage(list, token, entities, currentPage, settings.rowsPerLoad), items = settings.manipulateItems(resultsUpTo), total = selectors_1.default.getCurrentTotalResultsCount(list, token),
37
+ // currentPage was previously given to the following function
38
+ hasProblems = selectors_1.default.hasPageProblems(list, token), shouldLoadNext = !isNextFetched && !isNextFetching;
39
+ return {
40
+ paginator: Immutable.Map({
41
+ currentPage,
42
+ hasProblems,
43
+ isFetched,
44
+ isFetching,
45
+ items,
46
+ shouldLoadNext,
47
+ total,
48
+ }),
49
+ };
50
+ }, mapDispatchToProps = (dispatch, { token, settings, }) => (Object.assign(Object.assign({}, (0, redux_1.bindActionCreators)({
51
+ resetView: settings.resetView,
52
+ changeView: settings.changeView,
53
+ }, dispatch)), { loadData(page) {
54
+ dispatch(settings.requestPage(page, token));
55
+ } }));
56
+ // new
57
+ /* eslint-disable */
58
+ class LoadPaginator extends react_1.Component {
59
+ constructor(props) {
60
+ super(props);
61
+ this.handleLoadMoreClick = () => {
62
+ const { paginator, token, changeView, loadData } = this.props, currentPage = paginator.get("currentPage"), hasProblems = paginator.get("hasProblems"), shouldLoadNext = paginator.get("shouldLoadNext");
63
+ if (hasProblems) {
64
+ loadData(currentPage);
65
+ }
66
+ else {
67
+ changeView({
68
+ token,
69
+ view: currentPage + 1,
70
+ });
71
+ if (shouldLoadNext) {
72
+ loadData(currentPage + 1);
73
+ }
74
+ }
75
+ };
76
+ }
77
+ componentDidMount() {
78
+ const { paginator, loadData } = this.props, isFetched = paginator.get("isFetched"), isFetching = paginator.get("isFetching"), currentPage = paginator.get("currentPage"), shouldFetch = !isFetched && !isFetching;
79
+ if (shouldFetch) {
80
+ loadData(currentPage);
81
+ }
82
+ }
83
+ UNSAFE_componentWillReceiveProps(nextProps) {
84
+ const { loadData, paginator } = nextProps, isFetched = paginator.get("isFetched"), isFetching = paginator.get("isFetching"), currentPage = paginator.get("currentPage"), shouldFetch = !isFetched && !isFetching;
85
+ if (shouldFetch) {
86
+ loadData(currentPage);
87
+ }
88
+ }
89
+ shouldComponentUpdate(nextProps) {
90
+ return this.props.paginator !== nextProps.paginator;
91
+ }
92
+ componentWillUnmount() {
93
+ this.props.resetView(this.props.token);
94
+ }
95
+ render() {
96
+ const { paginator } = this.props, items = paginator.get("items"), hasProblems = paginator.get("hasProblems"), currentPage = paginator.get("currentPage"), isFetching = paginator.get("isFetching"), total = paginator.get("total"), isEmpty = items.size === 0, showLoading = total !== items.size;
97
+ if (isEmpty && isFetching) {
98
+ return react_1.default.createElement(Messages_1.LoadingMessage, { message: words_1.default.LoadingData });
99
+ }
100
+ if (hasProblems && currentPage === 1) {
101
+ return (react_1.default.createElement(Messages_1.LargeErrorMessage, { message: words_1.default.ThereWasAProblem, onRetry: this.handleLoadMoreClick }));
102
+ }
103
+ return (react_1.default.createElement(react_1.default.Fragment, null,
104
+ react_1.default.cloneElement(this.props.children, this.props),
105
+ showLoading ? (react_1.default.createElement(LoadingButton_1.default, { hasProblems: hasProblems, isFetching: isFetching, onLoadMoreClick: this.handleLoadMoreClick })) : null));
106
+ }
107
+ }
108
+ exports.default = (0, react_redux_1.connect)(mapStateToProps, mapDispatchToProps)(LoadPaginator);
109
+ //# sourceMappingURL=LoadPaginator.js.map