@snack-uikit/table 0.17.3 → 0.17.4-preview-b7782fba.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/components/Table/Table.js +7 -2
- package/dist/components/Table/hooks/usePageReset.d.ts +4 -3
- package/dist/components/Table/hooks/usePageReset.js +3 -4
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +8 -0
- package/package.json +2 -2
- package/src/components/Table/Table.tsx +8 -3
- package/src/components/Table/hooks/usePageReset.ts +11 -6
- package/src/utils.ts +11 -0
|
@@ -38,7 +38,6 @@ export function Table(_a) {
|
|
|
38
38
|
const { state: sorting, onStateChange: onSortingChange } = useStateControl(sortingProp, []);
|
|
39
39
|
const { state: pagination, onStateChange: onPaginationChange } = useStateControl(paginationProp, defaultPaginationState);
|
|
40
40
|
const enableSelection = Boolean(rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.enable);
|
|
41
|
-
usePageReset({ data, pagination, onPaginationChange });
|
|
42
41
|
const tableColumns = useMemo(() => {
|
|
43
42
|
let cols = columnDefinitions;
|
|
44
43
|
if (enableSelection) {
|
|
@@ -77,7 +76,7 @@ export function Table(_a) {
|
|
|
77
76
|
manualSorting,
|
|
78
77
|
manualPagination,
|
|
79
78
|
manualFiltering,
|
|
80
|
-
globalFilterFn: enableFuzzySearch ? fuzzyFilter :
|
|
79
|
+
globalFilterFn: enableFuzzySearch ? fuzzyFilter : 'includesString',
|
|
81
80
|
onGlobalFilterChange,
|
|
82
81
|
getRowId,
|
|
83
82
|
onRowSelectionChange,
|
|
@@ -169,6 +168,12 @@ export function Table(_a) {
|
|
|
169
168
|
const tempPageSize = !suppressPagination ? tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize : pageSize;
|
|
170
169
|
return !tableRows.length ? Math.min(Math.max(tempPageSize, 5), DEFAULT_PAGE_SIZE) : tempPageSize;
|
|
171
170
|
}, [pageSize, suppressPagination, tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize, tableRows.length]);
|
|
171
|
+
usePageReset({
|
|
172
|
+
manualPagination,
|
|
173
|
+
maximumAvailablePage: pageCount || data.length / pagination.pageSize,
|
|
174
|
+
pagination,
|
|
175
|
+
onPaginationChange,
|
|
176
|
+
});
|
|
172
177
|
return (_jsx(_Fragment, { children: _jsxs("div", Object.assign({ style: {
|
|
173
178
|
'--page-size': cssPageSize,
|
|
174
179
|
}, className: cn(styles.wrapper, className) }, extractSupportProps(rest), { children: [!suppressToolbar && (_jsxs("div", { className: styles.header, children: [_jsx(Toolbar, { search: {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { PaginationState } from '@tanstack/react-table';
|
|
2
|
-
type UsePageResetProps
|
|
3
|
-
|
|
2
|
+
type UsePageResetProps = {
|
|
3
|
+
manualPagination: boolean;
|
|
4
|
+
maximumAvailablePage: number;
|
|
4
5
|
pagination: PaginationState;
|
|
5
6
|
onPaginationChange(state: PaginationState): void;
|
|
6
7
|
};
|
|
7
|
-
export declare function usePageReset
|
|
8
|
+
export declare function usePageReset({ manualPagination, pagination, maximumAvailablePage, onPaginationChange, }: UsePageResetProps): void;
|
|
8
9
|
export {};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
|
-
export function usePageReset({ pagination,
|
|
2
|
+
export function usePageReset({ manualPagination, pagination, maximumAvailablePage, onPaginationChange, }) {
|
|
3
3
|
useEffect(() => {
|
|
4
4
|
const { pageIndex } = pagination;
|
|
5
|
-
|
|
6
|
-
if (pageIndex > 0 && pageIndex >= maximumAvailablePage) {
|
|
5
|
+
if (!manualPagination && pageIndex > 0 && pageIndex >= maximumAvailablePage) {
|
|
7
6
|
onPaginationChange(Object.assign(Object.assign({}, pagination), { pageIndex: 0 }));
|
|
8
7
|
}
|
|
9
|
-
}, [
|
|
8
|
+
}, [maximumAvailablePage, manualPagination, onPaginationChange, pagination]);
|
|
10
9
|
}
|
package/dist/utils.d.ts
CHANGED
package/dist/utils.js
CHANGED
|
@@ -7,3 +7,11 @@ export const fuzzyFilter = (row, columnId, value, addMeta) => {
|
|
|
7
7
|
});
|
|
8
8
|
return itemRank.passed;
|
|
9
9
|
};
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
export const preciseFilter = (row, columnId, value, addMeta) => {
|
|
12
|
+
const itemRank = rankItem(row.getValue(columnId), value);
|
|
13
|
+
addMeta({
|
|
14
|
+
itemRank,
|
|
15
|
+
});
|
|
16
|
+
return itemRank.passed;
|
|
17
|
+
};
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Table",
|
|
7
|
-
"version": "0.17.
|
|
7
|
+
"version": "0.17.4-preview-b7782fba.0",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@snack-uikit/locale": "*"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "12795dac1883cc52041c7d0e5665542da3535fc8"
|
|
61
61
|
}
|
|
@@ -100,8 +100,6 @@ export function Table<TData extends object>({
|
|
|
100
100
|
);
|
|
101
101
|
const enableSelection = Boolean(rowSelectionProp?.enable);
|
|
102
102
|
|
|
103
|
-
usePageReset({ data, pagination, onPaginationChange });
|
|
104
|
-
|
|
105
103
|
const tableColumns: ColumnDefinition<TData>[] = useMemo(() => {
|
|
106
104
|
let cols: ColumnDefinition<TData>[] = columnDefinitions;
|
|
107
105
|
if (enableSelection) {
|
|
@@ -143,7 +141,7 @@ export function Table<TData extends object>({
|
|
|
143
141
|
manualPagination,
|
|
144
142
|
manualFiltering,
|
|
145
143
|
|
|
146
|
-
globalFilterFn: enableFuzzySearch ? fuzzyFilter :
|
|
144
|
+
globalFilterFn: enableFuzzySearch ? fuzzyFilter : 'includesString',
|
|
147
145
|
onGlobalFilterChange,
|
|
148
146
|
|
|
149
147
|
getRowId,
|
|
@@ -257,6 +255,13 @@ export function Table<TData extends object>({
|
|
|
257
255
|
return !tableRows.length ? Math.min(Math.max(tempPageSize, 5), DEFAULT_PAGE_SIZE) : tempPageSize;
|
|
258
256
|
}, [pageSize, suppressPagination, tablePagination?.pageSize, tableRows.length]);
|
|
259
257
|
|
|
258
|
+
usePageReset({
|
|
259
|
+
manualPagination,
|
|
260
|
+
maximumAvailablePage: pageCount || data.length / pagination.pageSize,
|
|
261
|
+
pagination,
|
|
262
|
+
onPaginationChange,
|
|
263
|
+
});
|
|
264
|
+
|
|
260
265
|
return (
|
|
261
266
|
<>
|
|
262
267
|
<div
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { PaginationState } from '@tanstack/react-table';
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
3
|
|
|
4
|
-
type UsePageResetProps
|
|
5
|
-
|
|
4
|
+
type UsePageResetProps = {
|
|
5
|
+
manualPagination: boolean;
|
|
6
|
+
maximumAvailablePage: number;
|
|
6
7
|
pagination: PaginationState;
|
|
7
8
|
onPaginationChange(state: PaginationState): void;
|
|
8
9
|
};
|
|
9
10
|
|
|
10
|
-
export function usePageReset
|
|
11
|
+
export function usePageReset({
|
|
12
|
+
manualPagination,
|
|
13
|
+
pagination,
|
|
14
|
+
maximumAvailablePage,
|
|
15
|
+
onPaginationChange,
|
|
16
|
+
}: UsePageResetProps) {
|
|
11
17
|
useEffect(() => {
|
|
12
18
|
const { pageIndex } = pagination;
|
|
13
|
-
const maximumAvailablePage = data.length / pagination.pageSize;
|
|
14
19
|
|
|
15
|
-
if (pageIndex > 0 && pageIndex >= maximumAvailablePage) {
|
|
20
|
+
if (!manualPagination && pageIndex > 0 && pageIndex >= maximumAvailablePage) {
|
|
16
21
|
onPaginationChange({ ...pagination, pageIndex: 0 });
|
|
17
22
|
}
|
|
18
|
-
}, [
|
|
23
|
+
}, [maximumAvailablePage, manualPagination, onPaginationChange, pagination]);
|
|
19
24
|
}
|
package/src/utils.ts
CHANGED
|
@@ -11,3 +11,14 @@ export const fuzzyFilter: FilterFn<any> = (row, columnId, value, addMeta) => {
|
|
|
11
11
|
|
|
12
12
|
return itemRank.passed;
|
|
13
13
|
};
|
|
14
|
+
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
+
export const preciseFilter: FilterFn<any> = (row, columnId, value, addMeta) => {
|
|
17
|
+
const itemRank: RankingInfo = rankItem(row.getValue(columnId), value);
|
|
18
|
+
|
|
19
|
+
addMeta({
|
|
20
|
+
itemRank,
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
return itemRank.passed;
|
|
24
|
+
};
|