UNPKG

7.13 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _typeof3 = require("@babel/runtime/helpers/typeof");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = exports.OmitProps = void 0;
11
12var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
16var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
18var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
20var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
21
22var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
23
24var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
25
26var React = _interopRequireWildcard(require("react"));
27
28var _classnames = _interopRequireDefault(require("classnames"));
29
30var _type = require("../_util/type");
31
32var _pagination = _interopRequireDefault(require("../pagination"));
33
34var _ListItem = _interopRequireDefault(require("./ListItem"));
35
36function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
38function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
40var OmitProps = (0, _type.tuple)('handleFilter', 'handleClear', 'checkedKeys');
41exports.OmitProps = OmitProps;
42
43function parsePagination(pagination) {
44 if (!pagination) {
45 return null;
46 }
47
48 var defaultPagination = {
49 pageSize: 10
50 };
51
52 if ((0, _typeof2["default"])(pagination) === 'object') {
53 return (0, _extends2["default"])((0, _extends2["default"])({}, defaultPagination), pagination);
54 }
55
56 return defaultPagination;
57}
58
59var ListBody = /*#__PURE__*/function (_React$Component) {
60 (0, _inherits2["default"])(ListBody, _React$Component);
61
62 var _super = (0, _createSuper2["default"])(ListBody);
63
64 function ListBody() {
65 var _this;
66
67 (0, _classCallCheck2["default"])(this, ListBody);
68 _this = _super.apply(this, arguments);
69 _this.state = {
70 current: 1
71 };
72
73 _this.onItemSelect = function (item) {
74 var _this$props = _this.props,
75 onItemSelect = _this$props.onItemSelect,
76 selectedKeys = _this$props.selectedKeys;
77 var checked = selectedKeys.indexOf(item.key) >= 0;
78 onItemSelect(item.key, !checked);
79 };
80
81 _this.onItemRemove = function (item) {
82 var onItemRemove = _this.props.onItemRemove;
83 onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove([item.key]);
84 };
85
86 _this.onPageChange = function (current) {
87 _this.setState({
88 current: current
89 });
90 };
91
92 _this.getItems = function () {
93 var current = _this.state.current;
94 var _this$props2 = _this.props,
95 pagination = _this$props2.pagination,
96 filteredRenderItems = _this$props2.filteredRenderItems;
97 var mergedPagination = parsePagination(pagination);
98 var displayItems = filteredRenderItems;
99
100 if (mergedPagination) {
101 displayItems = filteredRenderItems.slice((current - 1) * mergedPagination.pageSize, current * mergedPagination.pageSize);
102 }
103
104 return displayItems;
105 };
106
107 return _this;
108 }
109
110 (0, _createClass2["default"])(ListBody, [{
111 key: "render",
112 value: function render() {
113 var _this2 = this;
114
115 var current = this.state.current;
116 var _this$props3 = this.props,
117 prefixCls = _this$props3.prefixCls,
118 onScroll = _this$props3.onScroll,
119 filteredRenderItems = _this$props3.filteredRenderItems,
120 selectedKeys = _this$props3.selectedKeys,
121 globalDisabled = _this$props3.disabled,
122 showRemove = _this$props3.showRemove,
123 pagination = _this$props3.pagination;
124 var mergedPagination = parsePagination(pagination);
125 var paginationNode = null;
126
127 if (mergedPagination) {
128 paginationNode = /*#__PURE__*/React.createElement(_pagination["default"], {
129 simple: true,
130 size: "small",
131 disabled: globalDisabled,
132 className: "".concat(prefixCls, "-pagination"),
133 total: filteredRenderItems.length,
134 pageSize: mergedPagination.pageSize,
135 current: current,
136 onChange: this.onPageChange
137 });
138 }
139
140 return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("ul", {
141 className: (0, _classnames["default"])("".concat(prefixCls, "-content"), (0, _defineProperty2["default"])({}, "".concat(prefixCls, "-content-show-remove"), showRemove)),
142 onScroll: onScroll
143 }, this.getItems().map(function (_ref) {
144 var renderedEl = _ref.renderedEl,
145 renderedText = _ref.renderedText,
146 item = _ref.item;
147 var disabled = item.disabled;
148 var checked = selectedKeys.indexOf(item.key) >= 0;
149 return /*#__PURE__*/React.createElement(_ListItem["default"], {
150 disabled: globalDisabled || disabled,
151 key: item.key,
152 item: item,
153 renderedText: renderedText,
154 renderedEl: renderedEl,
155 checked: checked,
156 prefixCls: prefixCls,
157 onClick: _this2.onItemSelect,
158 onRemove: _this2.onItemRemove,
159 showRemove: showRemove
160 });
161 })), paginationNode);
162 }
163 }], [{
164 key: "getDerivedStateFromProps",
165 value: function getDerivedStateFromProps(_ref2, _ref3) {
166 var filteredRenderItems = _ref2.filteredRenderItems,
167 pagination = _ref2.pagination;
168 var current = _ref3.current;
169 var mergedPagination = parsePagination(pagination);
170
171 if (mergedPagination) {
172 // Calculate the page number
173 var maxPageCount = Math.ceil(filteredRenderItems.length / mergedPagination.pageSize);
174
175 if (current > maxPageCount) {
176 return {
177 current: maxPageCount
178 };
179 }
180 }
181
182 return null;
183 }
184 }]);
185 return ListBody;
186}(React.Component);
187
188var _default = ListBody;
189exports["default"] = _default;
\No newline at end of file