@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.
- package/dist/lib/hooks.d.ts +24 -0
- package/dist/lib/hooks.js +70 -1
- package/dist/lib/hooks.js.map +1 -1
- package/package.json +6 -3
package/dist/lib/hooks.d.ts
CHANGED
|
@@ -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
|
package/dist/lib/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
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": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
|
-
"repository":
|
|
7
|
-
|
|
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": "*",
|