redux-paginator-immutable 17.0.5 → 17.0.19
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.
- package/lib/Info.d.ts +9 -0
- package/lib/Info.js +19 -41
- package/lib/Info.js.map +1 -0
- package/lib/LoadDataItem.d.ts +23 -0
- package/lib/LoadDataItem.js +59 -110
- package/lib/LoadDataItem.js.map +1 -0
- package/lib/LoadPaginator.d.ts +41 -0
- package/lib/LoadPaginator.js +109 -216
- package/lib/LoadPaginator.js.map +1 -0
- package/lib/LoadingButton.d.ts +11 -0
- package/lib/LoadingButton.js +22 -75
- package/lib/LoadingButton.js.map +1 -0
- package/lib/actionTypes.d.ts +9 -0
- package/lib/actionTypes.js +13 -16
- package/lib/actionTypes.js.map +1 -0
- package/lib/actions.d.ts +42 -0
- package/lib/actions.js +82 -136
- package/lib/actions.js.map +1 -0
- package/lib/agent.d.ts +8 -0
- package/lib/agent.js +37 -86
- package/lib/agent.js.map +1 -0
- package/lib/createDataReducer.d.ts +36 -0
- package/lib/createDataReducer.js +75 -79
- package/lib/createDataReducer.js.map +1 -0
- package/lib/createItemReducer.d.ts +11 -0
- package/lib/createItemReducer.js +14 -32
- package/lib/createItemReducer.js.map +1 -0
- package/lib/createPaginator.d.ts +14 -0
- package/lib/createPaginator.js +83 -140
- package/lib/createPaginator.js.map +1 -0
- package/lib/index.d.ts +11 -0
- package/lib/index.js +30 -58
- package/lib/index.js.map +1 -0
- package/lib/paginatorMiddleware.d.ts +5 -0
- package/lib/paginatorMiddleware.js +68 -102
- package/lib/paginatorMiddleware.js.map +1 -0
- package/lib/reducerItemData.d.ts +18 -0
- package/lib/reducerItemData.js +56 -63
- package/lib/reducerItemData.js.map +1 -0
- package/lib/reducerOperations.d.ts +3 -0
- package/lib/reducerOperations.js +69 -114
- package/lib/reducerOperations.js.map +1 -0
- package/lib/reducers.d.ts +4 -0
- package/lib/reducers.js +75 -87
- package/lib/reducers.js.map +1 -0
- package/lib/selectors.d.ts +58 -0
- package/lib/selectors.js +79 -129
- package/lib/selectors.js.map +1 -0
- package/lib/types/actions.d.ts +85 -0
- package/lib/types/actions.js +3 -1
- package/lib/types/actions.js.map +1 -0
- package/lib/types/index.d.ts +21 -0
- package/lib/types/index.js +16 -29
- package/lib/types/index.js.map +1 -0
- package/lib/types/state.d.ts +6 -0
- package/lib/types/state.js +3 -1
- package/lib/types/state.js.map +1 -0
- package/lib/util.d.ts +9 -0
- package/lib/util.js +49 -73
- package/lib/util.js.map +1 -0
- package/lib/words.d.ts +9 -0
- package/lib/words.js +12 -15
- package/lib/words.js.map +1 -0
- package/package.json +35 -21
- package/src/Info.tsx +29 -0
- package/src/LoadDataItem.tsx +84 -0
- package/src/{LoadPaginator.jsx → LoadPaginator.tsx} +77 -94
- package/src/LoadingButton.tsx +40 -0
- package/src/__tests__/createPaginator.spec.js +6 -6
- package/src/__tests__/reducers.spec.js +28 -28
- package/src/__tests__/selectors.spec.js +80 -81
- package/src/{actionTypes.js → actionTypes.ts} +0 -4
- package/src/actions.ts +157 -0
- package/src/agent.ts +62 -0
- package/src/createDataReducer.ts +98 -0
- package/src/{createItemReducer.js → createItemReducer.ts} +6 -12
- package/src/createPaginator.ts +107 -0
- package/src/{index.js → index.ts} +0 -13
- package/src/paginatorMiddleware.ts +93 -0
- package/src/reducerItemData.ts +74 -0
- package/src/reducerOperations.ts +101 -0
- package/src/{reducers.js → reducers.ts} +9 -18
- package/src/selectors.ts +113 -0
- package/src/types/{actions.js → actions.ts} +27 -39
- package/src/types/{index.js → index.ts} +3 -13
- package/src/types/{state.js → state.ts} +3 -6
- package/src/util.ts +51 -0
- package/src/{words.js → words.ts} +0 -2
- package/lib/__tests__/actions.spec.js +0 -117
- package/lib/__tests__/agent.spec.js +0 -32
- package/lib/__tests__/createPaginator.spec.js +0 -39
- package/lib/__tests__/reducers.spec.js +0 -126
- package/lib/__tests__/selectors.spec.js +0 -162
- package/lib/__tests__/setup.js +0 -3
- package/src/Info.jsx +0 -34
- package/src/LoadDataItem.jsx +0 -116
- package/src/LoadingButton.jsx +0 -55
- package/src/actions.js +0 -153
- package/src/agent.js +0 -55
- package/src/createDataReducer.js +0 -94
- package/src/createPaginator.js +0 -131
- package/src/paginatorMiddleware.js +0 -94
- package/src/reducerItemData.jsx +0 -64
- package/src/reducerOperations.jsx +0 -112
- package/src/selectors.js +0 -143
- package/src/util.js +0 -71
package/lib/Info.d.ts
ADDED
package/lib/Info.js
CHANGED
|
@@ -1,41 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (value === 1) {
|
|
21
|
-
return "1 " + one;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return _words2.default.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 ? _utility.words.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
|
package/lib/Info.js.map
ADDED
|
@@ -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;
|
package/lib/LoadDataItem.js
CHANGED
|
@@ -1,110 +1,59 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
})
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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;
|
package/lib/LoadPaginator.js
CHANGED
|
@@ -1,216 +1,109 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
})
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|