tabler-react-2 0.1.153-alpha.0 → 0.1.153-alpha.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.
@@ -122,9 +122,12 @@ var Table = exports.Table = function Table(_ref4) {
122
122
  defaultRowsPerPage = _ref4$defaultRowsPerP === void 0 ? 10 : _ref4$defaultRowsPerP,
123
123
  page = _ref4.page,
124
124
  rowsPerPage = _ref4.rowsPerPage,
125
+ size = _ref4.size,
125
126
  totalRows = _ref4.totalRows,
126
127
  onPageChange = _ref4.onPageChange,
127
128
  onRowsPerPageChange = _ref4.onRowsPerPageChange,
129
+ onSetPage = _ref4.onSetPage,
130
+ onSetSize = _ref4.onSetSize,
128
131
  _ref4$pageSizeOptions = _ref4.pageSizeOptions,
129
132
  pageSizeOptions = _ref4$pageSizeOptions === void 0 ? [10, 25, 50, 100] : _ref4$pageSizeOptions,
130
133
  _ref4$tableClassName = _ref4.tableClassName,
@@ -151,10 +154,10 @@ var Table = exports.Table = function Table(_ref4) {
151
154
 
152
155
  // Determine controlled vs uncontrolled values
153
156
  var isPageControlled = typeof page === "number" && page > 0;
154
- var isPageSizeControlled = typeof rowsPerPage === "number" && rowsPerPage > 0;
155
- var useExternalPagination = isPageControlled || isPageSizeControlled || typeof totalRows === "number" || typeof onPageChange === "function" || typeof onRowsPerPageChange === "function";
157
+ var isPageSizeControlled = typeof size === "number" && size > 0 || typeof rowsPerPage === "number" && rowsPerPage > 0;
158
+ var useExternalPagination = isPageControlled || isPageSizeControlled || typeof totalRows === "number" || typeof onSetPage === "function" || typeof onSetSize === "function" || typeof onPageChange === "function" || typeof onRowsPerPageChange === "function";
156
159
  var effectivePage = isPageControlled ? page : currentPage;
157
- var effectivePageSize = isPageSizeControlled ? rowsPerPage : pageSize;
160
+ var effectivePageSize = isPageSizeControlled ? typeof size === "number" && size > 0 ? size : rowsPerPage : pageSize;
158
161
  var defaultSortFn = function defaultSortFn(a, b) {
159
162
  if (a === b) return 0;
160
163
  return a > b ? 1 : -1;
@@ -168,8 +171,14 @@ var Table = exports.Table = function Table(_ref4) {
168
171
  key: accessor,
169
172
  direction: direction
170
173
  });
171
- if (useExternalPagination && typeof onPageChange === "function") {
172
- onPageChange(1);
174
+ if (useExternalPagination) {
175
+ if (typeof onSetPage === "function") {
176
+ onSetPage(1);
177
+ } else if (typeof onPageChange === "function") {
178
+ onPageChange(1);
179
+ } else {
180
+ setCurrentPage(1);
181
+ }
173
182
  } else {
174
183
  setCurrentPage(1);
175
184
  }
@@ -252,21 +261,21 @@ var Table = exports.Table = function Table(_ref4) {
252
261
  }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_index.Button, {
253
262
  onClick: function onClick() {
254
263
  var prev = Math.max(effectivePage - 1, 1);
255
- if (useExternalPagination && typeof onPageChange === "function") {
256
- onPageChange(prev);
257
- } else {
258
- setCurrentPage(prev);
264
+ if (useExternalPagination) {
265
+ if (typeof onSetPage === "function") return onSetPage(prev);
266
+ if (typeof onPageChange === "function") return onPageChange(prev);
259
267
  }
268
+ setCurrentPage(prev);
260
269
  },
261
270
  disabled: effectivePage === 1
262
271
  }, "Previous"), /*#__PURE__*/_react["default"].createElement(_index.Button, {
263
272
  onClick: function onClick() {
264
273
  var next = Math.min(effectivePage + 1, totalPages);
265
- if (useExternalPagination && typeof onPageChange === "function") {
266
- onPageChange(next);
267
- } else {
268
- setCurrentPage(next);
274
+ if (useExternalPagination) {
275
+ if (typeof onSetPage === "function") return onSetPage(next);
276
+ if (typeof onPageChange === "function") return onPageChange(next);
269
277
  }
278
+ setCurrentPage(next);
270
279
  },
271
280
  disabled: effectivePage === totalPages,
272
281
  style: {
@@ -295,12 +304,12 @@ var Table = exports.Table = function Table(_ref4) {
295
304
  }),
296
305
  value: effectivePageSize,
297
306
  onChange: function onChange(selected) {
298
- if (useExternalPagination && typeof onRowsPerPageChange === "function") {
299
- onRowsPerPageChange(selected.id);
300
- } else {
301
- setPageSize(selected.id);
302
- setCurrentPage(1);
307
+ if (useExternalPagination) {
308
+ if (typeof onSetSize === "function") return onSetSize(selected.id);
309
+ if (typeof onRowsPerPageChange === "function") return onRowsPerPageChange(selected.id);
303
310
  }
311
+ setPageSize(selected.id);
312
+ setCurrentPage(1);
304
313
  }
305
314
  })));
306
315
  };
@@ -323,8 +332,11 @@ Table.propTypes = {
323
332
  // external pagination
324
333
  page: _propTypes["default"].number,
325
334
  rowsPerPage: _propTypes["default"].number,
335
+ size: _propTypes["default"].number,
326
336
  totalRows: _propTypes["default"].number,
327
337
  onPageChange: _propTypes["default"].func,
328
338
  onRowsPerPageChange: _propTypes["default"].func,
339
+ onSetPage: _propTypes["default"].func,
340
+ onSetSize: _propTypes["default"].func,
329
341
  pageSizeOptions: _propTypes["default"].arrayOf(_propTypes["default"].number)
330
342
  };
package/docs/package.json CHANGED
@@ -22,7 +22,7 @@
22
22
  "react": "^18.2.0",
23
23
  "react-dom": "^18.2.0",
24
24
  "styled-components": "^6.1.15",
25
- "tabler-react-2": "^0.1.140"
25
+ "tabler-react-2": "0.1.153-alpha.0"
26
26
  },
27
27
  "devDependencies": {},
28
28
  "keywords": [
@@ -491,17 +491,19 @@ The `Table` supports built-in pagination UI. Enable it with `showPagination`.
491
491
  You can also fully control pagination from the parent (e.g., server-side paging) while keeping the same UI. Provide the controlled props and callbacks below. When any controlled pagination prop is provided, the table does not slice your `data` and instead assumes `data` already contains the current page.
492
492
 
493
493
  - page: current page (1-based)
494
- - rowsPerPage: current page size
494
+ - size: current page size
495
495
  - totalRows: total available row count used for page count and the “Showing … of …” text
496
- - onPageChange: called with next page (1-based)
497
- - onRowsPerPageChange: called with next page size
496
+ - onSetPage: called with next page (1-based)
497
+ - onSetSize: called with next page size
498
+
499
+ Aliases are supported for compatibility: `rowsPerPage`, `onPageChange`, `onRowsPerPageChange`.
498
500
 
499
501
  <Excerpt>
500
502
  {(() => {
501
503
  // Simulated external pagination
502
504
  const React = require("react");
503
505
  const [page, setPage] = React.useState(1);
504
- const [rpp, setRpp] = React.useState(10);
506
+ const [rpp, setRpp] = React.useState(4);
505
507
  const total = congressPeople.length;
506
508
  const start = (page - 1) * rpp;
507
509
  const pageData = congressPeople.slice(start, start + rpp);
@@ -515,10 +517,10 @@ You can also fully control pagination from the parent (e.g., server-side paging)
515
517
  data={pageData}
516
518
  showPagination
517
519
  page={page}
518
- rowsPerPage={rpp}
520
+ size={rpp}
519
521
  totalRows={total}
520
- onPageChange={setPage}
521
- onRowsPerPageChange={(n) => {
522
+ onSetPage={setPage}
523
+ onSetSize={(n) => {
522
524
  setPage(1);
523
525
  setRpp(n);
524
526
  }}
@@ -542,10 +544,10 @@ const currentData = allRows.slice(start, start + rowsPerPage);
542
544
  data={currentData}
543
545
  showPagination
544
546
  page={page}
545
- rowsPerPage={rowsPerPage}
547
+ size={rowsPerPage}
546
548
  totalRows={totalRows}
547
- onPageChange={setPage}
548
- onRowsPerPageChange={(n) => { setPage(1); setRowsPerPage(n); }}
549
+ onSetPage={setPage}
550
+ onSetSize={(n) => { setPage(1); setRowsPerPage(n); }}
549
551
  />;
550
552
  ```
551
553
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tabler-react-2",
3
- "version": "0.1.153-alpha.0",
3
+ "version": "0.1.153-alpha.1",
4
4
  "description": "A react implementation of Tabler ui",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {