@twreporter/react-components 8.26.0 → 8.27.0-rc.1

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/CHANGELOG.md CHANGED
@@ -3,6 +3,30 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [8.27.0-rc.1](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.27.0-rc.0...@twreporter/react-components@8.27.0-rc.1) (2024-03-27)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * pagination number position center ([6d933f1](https://github.com/twreporter/twreporter-npm-packages/commit/6d933f11695b3aa5ad02190be943dfd51e2a11af))
12
+
13
+
14
+
15
+
16
+
17
+ # [8.27.0-rc.0](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.26.0...@twreporter/react-components@8.27.0-rc.0) (2024-03-25)
18
+
19
+
20
+ ### Features
21
+
22
+ * add className prop ([f2d85fa](https://github.com/twreporter/twreporter-npm-packages/commit/f2d85fa1fcfc4afa4feddb6a001946580fe0d6cb))
23
+ * add mobile pagination ([d128cba](https://github.com/twreporter/twreporter-npm-packages/commit/d128cbafea8459eb03cdac22614e8ec067a89bad))
24
+ * adjust mobile pagination logic ([708f41b](https://github.com/twreporter/twreporter-npm-packages/commit/708f41bb9df638f1b41a15528c73aec7b24639f3))
25
+
26
+
27
+
28
+
29
+
6
30
  # [8.26.0](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.26.0-rc.4...@twreporter/react-components@8.26.0) (2024-03-13)
7
31
 
8
32
  **Note:** Version bump only for package @twreporter/react-components
@@ -21,11 +21,13 @@ var _css = require("@twreporter/core/lib/utils/css");
21
21
 
22
22
  var _color = require("@twreporter/core/lib/constants/color");
23
23
 
24
+ var _rwd = require("@twreporter/react-components/lib/rwd");
25
+
24
26
  var _concat = _interopRequireDefault(require("lodash/concat"));
25
27
 
26
28
  var _get = _interopRequireDefault(require("lodash/get"));
27
29
 
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
30
+ var _templateObject, _templateObject2, _templateObject3;
29
31
 
30
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
31
33
 
@@ -111,7 +113,7 @@ var PaginationContainer = /*#__PURE__*/_styledComponents["default"].div.withConf
111
113
  var Boxes = /*#__PURE__*/_styledComponents["default"].div.withConfig({
112
114
  displayName: "pagination__Boxes",
113
115
  componentId: "sc-17bqftr-1"
114
- })(["display:inline-block;user-select:none;"]);
116
+ })(["display:flex;justify-content:center;"]);
115
117
 
116
118
  var Box = /*#__PURE__*/_styledComponents["default"].div.withConfig({
117
119
  displayName: "pagination__Box",
@@ -121,21 +123,21 @@ var Box = /*#__PURE__*/_styledComponents["default"].div.withConfig({
121
123
  var PageNumberBox = /*#__PURE__*/(0, _styledComponents["default"])(Box).withConfig({
122
124
  displayName: "pagination__PageNumberBox",
123
125
  componentId: "sc-17bqftr-3"
124
- })(["border:solid 1px ", ";border-radius:50%;line-height:", "px;background-color:", ";> span{color:", ";}", ""], _color.colorSupportive.heavy, styles.btnBoxSize.desktop, function (props) {
126
+ })(["border:solid 1px ", ";border-radius:50%;line-height:", "px;background-color:", ";> span{color:", ";}"], _color.colorSupportive.heavy, styles.btnBoxSize.desktop, function (props) {
125
127
  return props.isCurrent ? _color.colorSupportive.heavy : 'transparent';
126
128
  }, function (props) {
127
129
  return props.isCurrent ? _color.colorGrayscale.white : _color.colorSupportive.heavy;
128
- }, _mediaQuery["default"].mobileOnly(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: ", ";\n "])), function (props) {
129
- return props.isCurrent ? '' : 'none';
130
- }));
130
+ });
131
131
  var EllipsisBox = /*#__PURE__*/(0, _styledComponents["default"])(Box).withConfig({
132
132
  displayName: "pagination__EllipsisBox",
133
133
  componentId: "sc-17bqftr-4"
134
- })(["cursor:default;padding:", ";", ""], (0, _css.arrayToCssShorthand)(styles.ellipsisBoxPadding), _mediaQuery["default"].mobileOnly(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: none;\n "]))));
134
+ })(["cursor:default;padding:", ";", ""], (0, _css.arrayToCssShorthand)(styles.ellipsisBoxPadding), _mediaQuery["default"].mobileOnly(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: none;\n "]))));
135
135
  var PrevNextBtn = /*#__PURE__*/(0, _styledComponents["default"])(Box).withConfig({
136
136
  displayName: "pagination__PrevNextBtn",
137
137
  componentId: "sc-17bqftr-5"
138
- })(["padding:", ";cursor:pointer;path{stroke:", ";}"], (0, _css.arrayToCssShorthand)(styles.prevNextBtnPadding), _color.colorSupportive.heavy);
138
+ })(["visibility:", ";padding:", ";cursor:pointer;path{stroke:", ";}"], function (props) {
139
+ return props.isHidden ? 'hidden' : 'visible';
140
+ }, (0, _css.arrayToCssShorthand)(styles.prevNextBtnPadding), _color.colorSupportive.heavy);
139
141
  /*
140
142
  Pages Array:
141
143
 
@@ -269,6 +271,30 @@ var Pagination = /*#__PURE__*/function (_React$PureComponent) {
269
271
  var length = nOfCenterPages;
270
272
  return _.concat(leftMarginJSX, leftEllipsisJSX, this._buildCenterJSX(startAt, length, currentPage), rightEllipsisJSX, rightMarginJSX);
271
273
  }
274
+ }, {
275
+ key: "_buildMobilePagesArray",
276
+ value: function _buildMobilePagesArray(currentPage, totalPages) {
277
+ var pagesArrayMaxLength = 5;
278
+
279
+ if (totalPages <= pagesArrayMaxLength) {
280
+ return this._buildCenterJSX(1, totalPages, currentPage);
281
+ }
282
+
283
+ var startPage; // Check if currentPage is within the first two pages or the last two pages
284
+
285
+ if (currentPage <= 2) {
286
+ // If in the first two pages, start from page 1
287
+ startPage = 1;
288
+ } else if (currentPage >= totalPages - 1) {
289
+ // If in the last two pages, adjust startPage to ensure the array is fully populated
290
+ startPage = totalPages - pagesArrayMaxLength + 1;
291
+ } else {
292
+ // Otherwise, center currentPage by adjusting startPage accordingly
293
+ startPage = currentPage - 2;
294
+ }
295
+
296
+ return this._buildCenterJSX(startPage, pagesArrayMaxLength, currentPage);
297
+ }
272
298
  }, {
273
299
  key: "render",
274
300
  value: function render() {
@@ -276,19 +302,28 @@ var Pagination = /*#__PURE__*/function (_React$PureComponent) {
276
302
  currentPage = _this$props2.currentPage,
277
303
  totalPages = _this$props2.totalPages,
278
304
  handleClickPrev = _this$props2.handleClickPrev,
279
- handleClickNext = _this$props2.handleClickNext;
280
- if (!totalPages || !currentPage) return /*#__PURE__*/_react["default"].createElement(PaginationContainer, null, /*#__PURE__*/_react["default"].createElement(Boxes, null));
305
+ handleClickNext = _this$props2.handleClickNext,
306
+ className = _this$props2.className;
307
+ if (!totalPages || !currentPage) return /*#__PURE__*/_react["default"].createElement(PaginationContainer, {
308
+ className: className
309
+ }, /*#__PURE__*/_react["default"].createElement(Boxes, null));
281
310
 
282
311
  var pagesArrayJSX = this._buildPagesArray(currentPage, totalPages);
283
312
 
313
+ var mobilePagesArrayJSX = this._buildMobilePagesArray(currentPage, totalPages);
314
+
284
315
  var belowFirstPage = currentPage <= 1;
285
316
  var aboveFinalPage = currentPage >= totalPages;
286
- return /*#__PURE__*/_react["default"].createElement(PaginationContainer, null, /*#__PURE__*/_react["default"].createElement(Boxes, null, belowFirstPage ? null : /*#__PURE__*/_react["default"].createElement(PrevNextBtn, {
317
+ return /*#__PURE__*/_react["default"].createElement(PaginationContainer, {
318
+ className: className
319
+ }, /*#__PURE__*/_react["default"].createElement(Boxes, null, /*#__PURE__*/_react["default"].createElement(PrevNextBtn, {
287
320
  key: "prev-btn",
288
- onClick: handleClickPrev
289
- }, /*#__PURE__*/_react["default"].createElement(PageUpIcon, null)), pagesArrayJSX, aboveFinalPage ? null : /*#__PURE__*/_react["default"].createElement(PrevNextBtn, {
321
+ onClick: handleClickPrev,
322
+ isHidden: belowFirstPage
323
+ }, /*#__PURE__*/_react["default"].createElement(PageUpIcon, null)), /*#__PURE__*/_react["default"].createElement(_rwd.TabletAndAbove, null, pagesArrayJSX), /*#__PURE__*/_react["default"].createElement(_rwd.MobileOnly, null, mobilePagesArrayJSX), /*#__PURE__*/_react["default"].createElement(PrevNextBtn, {
290
324
  key: "next-btn",
291
- onClick: handleClickNext
325
+ onClick: handleClickNext,
326
+ isHidden: aboveFinalPage
292
327
  }, /*#__PURE__*/_react["default"].createElement(PageDownIcon, null))));
293
328
  }
294
329
  }]);
@@ -304,14 +339,16 @@ Pagination.propTypes = {
304
339
  handleClickPrev: _propTypes["default"].func.isRequired,
305
340
  nOfCenterPages: _propTypes["default"].number.isRequired,
306
341
  nOfMarginPages: _propTypes["default"].number.isRequired,
307
- totalPages: _propTypes["default"].number.isRequired
342
+ totalPages: _propTypes["default"].number.isRequired,
343
+ className: _propTypes["default"].string
308
344
  };
309
345
  Pagination.defaultProps = {
310
346
  currentPage: 1,
311
347
  totalPages: 1,
312
348
  ellipsis: '…',
313
349
  nOfCenterPages: 4,
314
- nOfMarginPages: 1
350
+ nOfMarginPages: 1,
351
+ className: ''
315
352
  };
316
353
  var _default = Pagination;
317
354
  exports["default"] = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twreporter/react-components",
3
- "version": "8.26.0",
3
+ "version": "8.27.0-rc.1",
4
4
  "main": "lib/index.js",
5
5
  "repository": "https://github.com/twreporter/twreporter-npm-packages.git",
6
6
  "author": "twreporter <developer@twreporter.org>",
@@ -51,5 +51,5 @@
51
51
  "react-dom": "^16.0.0",
52
52
  "storybook": "^7.5.2"
53
53
  },
54
- "gitHead": "a0d096d6ffbcf637bc28cef98476c68daace7a04"
54
+ "gitHead": "64b430dd7114c25dfff361fadb2906c47891087d"
55
55
  }