@arkyn/components 1.3.148 → 1.3.150
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/bundle.js +78387 -45178
- package/dist/bundle.umd.cjs +1376 -551
- package/dist/components/Pagination/index.d.ts.map +1 -1
- package/dist/components/Pagination/index.js +19 -7
- package/dist/services/index.d.ts +1 -3
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -3
- package/package.json +1 -1
- package/src/components/Pagination/index.tsx +44 -23
- package/src/services/index.ts +1 -9
- package/dist/services/getNextPages.d.ts +0 -3
- package/dist/services/getNextPages.d.ts.map +0 -1
- package/dist/services/getNextPages.js +0 -7
- package/dist/services/getPreviousPages.d.ts +0 -3
- package/dist/services/getPreviousPages.d.ts.map +0 -1
- package/dist/services/getPreviousPages.js +0 -7
- package/src/services/getNextPages.ts +0 -12
- package/src/services/getPreviousPages.ts +0 -8
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAM/C,OAAO,cAAc,CAAC;AAUtB,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,2CAoHzC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
@@ -2,20 +2,32 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
2
2
|
import { useNavigate } from "@remix-run/react";
|
3
3
|
import { ChevronLeft, ChevronRight, Ellipsis } from "lucide-react";
|
4
4
|
import { useScopedParams } from "../../hooks/useScopedParams";
|
5
|
-
import { getNextPages, getPreviousPages } from "../../services";
|
6
5
|
import "./styles.css";
|
6
|
+
function generatePagesArray(from, to) {
|
7
|
+
return [...new Array(to - from)]
|
8
|
+
.map((_, index) => {
|
9
|
+
return from + index + 1;
|
10
|
+
})
|
11
|
+
.filter((page) => page > 0);
|
12
|
+
}
|
7
13
|
function Pagination(props) {
|
8
|
-
const { scope, totalCountRegisters, perPageKey = "per_page", pageKey = "page", siblingsCount = 2, ...rest } = props;
|
14
|
+
const { scope, totalCountRegisters, perPageKey = "per_page", pageKey = "page", siblingsCount = 2, currentPage: baseCurrentPage = 1, registerPerPage: baseRegisterPerPage = 20, ...rest } = props;
|
9
15
|
const navigate = useNavigate();
|
10
16
|
const { getParam, getScopedSearch } = useScopedParams(scope);
|
11
|
-
const currentPage = Number(getParam(
|
12
|
-
const registerPerPage = Number(getParam(
|
17
|
+
const currentPage = Number(getParam("page")) || baseCurrentPage;
|
18
|
+
const registerPerPage = Number(getParam("per_page")) || baseRegisterPerPage;
|
13
19
|
const lastPage = Math.ceil(totalCountRegisters / registerPerPage);
|
14
|
-
const previosPages =
|
15
|
-
|
20
|
+
const previosPages = currentPage > 1
|
21
|
+
? generatePagesArray(currentPage - 1 - siblingsCount, currentPage - 1)
|
22
|
+
: [];
|
23
|
+
const nextPages = currentPage < lastPage
|
24
|
+
? generatePagesArray(currentPage, Math.min(currentPage + siblingsCount, lastPage))
|
25
|
+
: [];
|
16
26
|
function handlePageChange(page) {
|
17
27
|
navigate(getScopedSearch({ page }));
|
18
28
|
}
|
19
|
-
return (_jsxs("div", { className: "arkynPagination", ...rest, children: [_jsx("button", { className: "arkynPaginationIconButton", disabled: currentPage <= 1, onClick: () => handlePageChange(currentPage - 1), children: _jsx(ChevronLeft, {}) }), currentPage > 1 + siblingsCount && (_jsxs(_Fragment, { children: [_jsx("button", { className: "arkynPaginationPageButton", onClick: () => handlePageChange(1), children: "1" }), currentPage > 2 + siblingsCount && (_jsx("button", { disabled: true, className: "arkynPaginationSpread", children: _jsx(Ellipsis, {}) }))] })), previosPages.
|
29
|
+
return (_jsxs("div", { className: "arkynPagination", ...rest, children: [_jsx("button", { className: "arkynPaginationIconButton", disabled: currentPage <= 1, onClick: () => handlePageChange(currentPage - 1), children: _jsx(ChevronLeft, {}) }), currentPage > 1 + siblingsCount && (_jsxs(_Fragment, { children: [_jsx("button", { className: "arkynPaginationPageButton", onClick: () => handlePageChange(1), children: "1" }), currentPage > 2 + siblingsCount && (_jsx("button", { disabled: true, className: "arkynPaginationSpread", children: _jsx(Ellipsis, {}) }))] })), previosPages.length > 0 &&
|
30
|
+
previosPages.map((page, index) => (_jsx("button", { onClick: () => handlePageChange(page), className: "arkynPaginationPageButton", children: page }, index))), _jsx("button", { className: "arkynPaginationCurrent", disabled: true, children: currentPage }), nextPages.length > 0 &&
|
31
|
+
nextPages.map((page, index) => (_jsx("button", { onClick: () => handlePageChange(page), className: "arkynPaginationPageButton", children: page }, index))), currentPage + siblingsCount < lastPage && (_jsxs(_Fragment, { children: [currentPage + 1 + siblingsCount < lastPage && (_jsx("button", { disabled: true, className: "arkynPaginationSpread", children: _jsx(Ellipsis, {}) })), _jsx("button", { className: "arkynPaginationPageButton", onClick: () => handlePageChange(lastPage), children: lastPage })] })), _jsx("button", { className: "arkynPaginationIconButton", disabled: currentPage >= lastPage, onClick: () => handlePageChange(currentPage + 1), children: _jsx(ChevronRight, {}) })] }));
|
20
32
|
}
|
21
33
|
export { Pagination };
|
package/dist/services/index.d.ts
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
import { GenerateIcon } from "./generateIcon";
|
2
2
|
import { generatePagesArray } from "./generatePagerArray";
|
3
|
-
import { getNextPages } from "./getNextPages";
|
4
|
-
import { getPreviousPages } from "./getPreviousPages";
|
5
3
|
import { morpheme } from "./morpheme";
|
6
|
-
export { GenerateIcon, generatePagesArray,
|
4
|
+
export { GenerateIcon, generatePagesArray, morpheme };
|
7
5
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/services/index.js
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
import { GenerateIcon } from "./generateIcon";
|
2
2
|
import { generatePagesArray } from "./generatePagerArray";
|
3
|
-
import { getNextPages } from "./getNextPages";
|
4
|
-
import { getPreviousPages } from "./getPreviousPages";
|
5
3
|
import { morpheme } from "./morpheme";
|
6
|
-
export { GenerateIcon, generatePagesArray,
|
4
|
+
export { GenerateIcon, generatePagesArray, morpheme };
|
package/package.json
CHANGED
@@ -3,10 +3,17 @@ import { useNavigate } from "@remix-run/react";
|
|
3
3
|
import { ChevronLeft, ChevronRight, Ellipsis } from "lucide-react";
|
4
4
|
|
5
5
|
import { useScopedParams } from "../../hooks/useScopedParams";
|
6
|
-
import { getNextPages, getPreviousPages } from "../../services";
|
7
6
|
|
8
7
|
import "./styles.css";
|
9
8
|
|
9
|
+
function generatePagesArray(from: number, to: number) {
|
10
|
+
return [...new Array(to - from)]
|
11
|
+
.map((_, index) => {
|
12
|
+
return from + index + 1;
|
13
|
+
})
|
14
|
+
.filter((page) => page > 0);
|
15
|
+
}
|
16
|
+
|
10
17
|
function Pagination(props: PaginationProps) {
|
11
18
|
const {
|
12
19
|
scope,
|
@@ -14,19 +21,31 @@ function Pagination(props: PaginationProps) {
|
|
14
21
|
perPageKey = "per_page",
|
15
22
|
pageKey = "page",
|
16
23
|
siblingsCount = 2,
|
24
|
+
currentPage: baseCurrentPage = 1,
|
25
|
+
registerPerPage: baseRegisterPerPage = 20,
|
17
26
|
...rest
|
18
27
|
} = props;
|
19
28
|
|
20
29
|
const navigate = useNavigate();
|
21
30
|
const { getParam, getScopedSearch } = useScopedParams(scope);
|
22
31
|
|
23
|
-
const currentPage = Number(getParam(
|
24
|
-
const registerPerPage = Number(getParam(
|
32
|
+
const currentPage = Number(getParam("page")) || baseCurrentPage;
|
33
|
+
const registerPerPage = Number(getParam("per_page")) || baseRegisterPerPage;
|
25
34
|
|
26
35
|
const lastPage = Math.ceil(totalCountRegisters / registerPerPage);
|
27
36
|
|
28
|
-
const previosPages =
|
29
|
-
|
37
|
+
const previosPages =
|
38
|
+
currentPage > 1
|
39
|
+
? generatePagesArray(currentPage - 1 - siblingsCount, currentPage - 1)
|
40
|
+
: [];
|
41
|
+
|
42
|
+
const nextPages =
|
43
|
+
currentPage < lastPage
|
44
|
+
? generatePagesArray(
|
45
|
+
currentPage,
|
46
|
+
Math.min(currentPage + siblingsCount, lastPage)
|
47
|
+
)
|
48
|
+
: [];
|
30
49
|
|
31
50
|
function handlePageChange(page: number) {
|
32
51
|
navigate(getScopedSearch({ page }));
|
@@ -59,29 +78,31 @@ function Pagination(props: PaginationProps) {
|
|
59
78
|
</>
|
60
79
|
)}
|
61
80
|
|
62
|
-
{previosPages.
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
81
|
+
{previosPages.length > 0 &&
|
82
|
+
previosPages.map((page, index) => (
|
83
|
+
<button
|
84
|
+
key={index}
|
85
|
+
onClick={() => handlePageChange(page)}
|
86
|
+
className="arkynPaginationPageButton"
|
87
|
+
>
|
88
|
+
{page}
|
89
|
+
</button>
|
90
|
+
))}
|
71
91
|
|
72
92
|
<button className="arkynPaginationCurrent" disabled>
|
73
93
|
{currentPage}
|
74
94
|
</button>
|
75
95
|
|
76
|
-
{nextPages.
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
96
|
+
{nextPages.length > 0 &&
|
97
|
+
nextPages.map((page, index) => (
|
98
|
+
<button
|
99
|
+
key={index}
|
100
|
+
onClick={() => handlePageChange(page)}
|
101
|
+
className="arkynPaginationPageButton"
|
102
|
+
>
|
103
|
+
{page}
|
104
|
+
</button>
|
105
|
+
))}
|
85
106
|
|
86
107
|
{currentPage + siblingsCount < lastPage && (
|
87
108
|
<>
|
package/src/services/index.ts
CHANGED
@@ -1,13 +1,5 @@
|
|
1
1
|
import { GenerateIcon } from "./generateIcon";
|
2
2
|
import { generatePagesArray } from "./generatePagerArray";
|
3
|
-
import { getNextPages } from "./getNextPages";
|
4
|
-
import { getPreviousPages } from "./getPreviousPages";
|
5
3
|
import { morpheme } from "./morpheme";
|
6
4
|
|
7
|
-
export {
|
8
|
-
GenerateIcon,
|
9
|
-
generatePagesArray,
|
10
|
-
getNextPages,
|
11
|
-
getPreviousPages,
|
12
|
-
morpheme,
|
13
|
-
};
|
5
|
+
export { GenerateIcon, generatePagesArray, morpheme };
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"getNextPages.d.ts","sourceRoot":"","sources":["../../src/services/getNextPages.ts"],"names":[],"mappings":"AAEA,iBAAS,YAAY,CACnB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,YAIjB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import { generatePagesArray } from "./generatePagerArray";
|
2
|
-
function getNextPages(currentPage, siblingsCount, lastPage) {
|
3
|
-
if (currentPage >= lastPage)
|
4
|
-
return [];
|
5
|
-
return generatePagesArray(currentPage, currentPage + siblingsCount);
|
6
|
-
}
|
7
|
-
export { getNextPages };
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"getPreviousPages.d.ts","sourceRoot":"","sources":["../../src/services/getPreviousPages.ts"],"names":[],"mappings":"AAEA,iBAAS,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAGnE;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
import { generatePagesArray } from "./generatePagerArray";
|
2
|
-
|
3
|
-
function getNextPages(
|
4
|
-
currentPage: number,
|
5
|
-
siblingsCount: number,
|
6
|
-
lastPage: number
|
7
|
-
) {
|
8
|
-
if (currentPage >= lastPage) return [];
|
9
|
-
return generatePagesArray(currentPage, currentPage + siblingsCount);
|
10
|
-
}
|
11
|
-
|
12
|
-
export { getNextPages };
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import { generatePagesArray } from "./generatePagerArray";
|
2
|
-
|
3
|
-
function getPreviousPages(currentPage: number, siblingsCount: number) {
|
4
|
-
if (currentPage <= 1) return [];
|
5
|
-
return generatePagesArray(currentPage - 1 - siblingsCount, currentPage - 1);
|
6
|
-
}
|
7
|
-
|
8
|
-
export { getPreviousPages };
|