@codeleap/web 1.5.14 → 2.0.0

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.
@@ -6,4 +6,28 @@ declare type UseClickOutsideOpts = {
6
6
  };
7
7
  export declare function useClickOutside(callback: AnyFunction, deps?: UseClickOutsideOpts): any;
8
8
  export declare function useScrollEffect(effect: (passed: boolean, current: number) => any, breakpoint: number, extraDependencies?: any[]): void;
9
+ export declare const DOTS = "dots";
10
+ export interface PaginationParams {
11
+ /** Page selected on initial render, defaults to 1 */
12
+ initialPage?: number;
13
+ /** Controlled active page number */
14
+ page?: number;
15
+ /** Total amount of pages */
16
+ total: number;
17
+ /** Siblings amount on left/right side of selected page, defaults to 1 */
18
+ siblings?: number;
19
+ /** Amount of elements visible on left/right edges, defaults to 1 */
20
+ boundaries?: number;
21
+ /** Callback fired after change of each page */
22
+ onChange?: (page: number) => void;
23
+ }
24
+ export declare function usePagination({ total, siblings, boundaries, page, initialPage, onChange, }: PaginationParams): {
25
+ range: (number | "dots")[];
26
+ active: number;
27
+ setPage: (pageNumber: number) => void;
28
+ next: () => void;
29
+ previous: () => void;
30
+ first: () => void;
31
+ last: () => void;
32
+ };
9
33
  export {};
package/dist/lib/hooks.js CHANGED
@@ -9,7 +9,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
9
9
  return to.concat(ar || Array.prototype.slice.call(from));
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.useScrollEffect = exports.useClickOutside = exports.useWindowSize = void 0;
12
+ exports.usePagination = exports.DOTS = exports.useScrollEffect = exports.useClickOutside = exports.useWindowSize = void 0;
13
13
  var common_1 = require("@codeleap/common");
14
14
  var react_1 = require("react");
15
15
  var uuid_1 = require("uuid");
@@ -83,4 +83,73 @@ function useScrollEffect(effect, breakpoint, extraDependencies) {
83
83
  }, __spreadArray([breakpoint], extraDependencies, true));
84
84
  }
85
85
  exports.useScrollEffect = useScrollEffect;
86
+ exports.DOTS = 'dots';
87
+ function usePagination(_a) {
88
+ var total = _a.total, _b = _a.siblings, siblings = _b === void 0 ? 1 : _b, _c = _a.boundaries, boundaries = _c === void 0 ? 1 : _c, page = _a.page, _d = _a.initialPage, initialPage = _d === void 0 ? 1 : _d, onChange = _a.onChange;
89
+ var _e = (0, common_1.useUncontrolled)({
90
+ value: page,
91
+ onChange: onChange,
92
+ defaultValue: initialPage,
93
+ finalValue: initialPage,
94
+ rule: function (_page) { return typeof _page === 'number' && _page <= total; },
95
+ }), activePage = _e[0], setActivePage = _e[1];
96
+ var setPage = function (pageNumber) {
97
+ if (pageNumber <= 0) {
98
+ setActivePage(1);
99
+ }
100
+ else if (pageNumber > total) {
101
+ setActivePage(total);
102
+ }
103
+ else {
104
+ setActivePage(pageNumber);
105
+ }
106
+ };
107
+ var next = function () { return setPage(activePage + 1); };
108
+ var previous = function () { return setPage(activePage - 1); };
109
+ var first = function () { return setPage(1); };
110
+ var last = function () { return setPage(total); };
111
+ var paginationRange = (0, react_1.useMemo)(function () {
112
+ // Pages count is determined as siblings (left/right) + boundaries(left/right) + currentPage + 2*DOTS
113
+ var totalPageNumbers = siblings * 2 + 3 + boundaries * 2;
114
+ /*
115
+ * If the number of pages is less than the page numbers we want to show in our
116
+ * paginationComponent, we return the range [1..total]
117
+ */
118
+ if (totalPageNumbers >= total) {
119
+ return (0, common_1.range)(1, total);
120
+ }
121
+ var leftSiblingIndex = Math.max(activePage - siblings, boundaries);
122
+ var rightSiblingIndex = Math.min(activePage + siblings, total - boundaries);
123
+ /*
124
+ * We do not want to show dots if there is only one position left
125
+ * after/before the left/right page count as that would lead to a change if our Pagination
126
+ * component size which we do not want
127
+ */
128
+ var shouldShowLeftDots = leftSiblingIndex > boundaries + 2;
129
+ var shouldShowRightDots = rightSiblingIndex < total - (boundaries + 1);
130
+ if (!shouldShowLeftDots && shouldShowRightDots) {
131
+ var leftItemCount = siblings * 2 + boundaries + 2;
132
+ return __spreadArray(__spreadArray(__spreadArray([], (0, common_1.range)(1, leftItemCount), true), [exports.DOTS], false), (0, common_1.range)(total - (boundaries - 1), total), true);
133
+ }
134
+ if (shouldShowLeftDots && !shouldShowRightDots) {
135
+ var rightItemCount = boundaries + 1 + 2 * siblings;
136
+ return __spreadArray(__spreadArray(__spreadArray([], (0, common_1.range)(1, boundaries), true), [exports.DOTS], false), (0, common_1.range)(total - rightItemCount, total), true);
137
+ }
138
+ return __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], (0, common_1.range)(1, boundaries), true), [
139
+ exports.DOTS
140
+ ], false), (0, common_1.range)(leftSiblingIndex, rightSiblingIndex), true), [
141
+ exports.DOTS
142
+ ], false), (0, common_1.range)(total - boundaries + 1, total), true);
143
+ }, [total, siblings, activePage]);
144
+ return {
145
+ range: paginationRange,
146
+ active: activePage,
147
+ setPage: setPage,
148
+ next: next,
149
+ previous: previous,
150
+ first: first,
151
+ last: last,
152
+ };
153
+ }
154
+ exports.usePagination = usePagination;
86
155
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "@codeleap/web",
3
- "version": "1.5.14",
3
+ "version": "2.0.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
- "repository": "git@github.com:codeleap-uk/codeleap-lib.git",
7
- "author": "Paulo Henrique De Souza <paulosouza300272@gmail.com>",
6
+ "repository": {
7
+ "url": "https://github.com/codeleap-uk/internal-libs-monorepo.git",
8
+ "type": "git",
9
+ "directory": "packages/web"
10
+ },
8
11
  "license": "UNLICENSED",
9
12
  "devDependencies": {
10
13
  "@codeleap/config": "*",