@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.
@@ -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 : undefined,
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<TData extends object> = {
3
- data: TData[];
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<TData extends object>({ pagination, data, onPaginationChange }: UsePageResetProps<TData>): void;
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, data, onPaginationChange }) {
2
+ export function usePageReset({ manualPagination, pagination, maximumAvailablePage, onPaginationChange, }) {
3
3
  useEffect(() => {
4
4
  const { pageIndex } = pagination;
5
- const maximumAvailablePage = data.length / pagination.pageSize;
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
- }, [data.length, onPaginationChange, pagination]);
8
+ }, [maximumAvailablePage, manualPagination, onPaginationChange, pagination]);
10
9
  }
package/dist/utils.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  import { FilterFn } from '@tanstack/react-table';
2
2
  export declare const fuzzyFilter: FilterFn<any>;
3
+ export declare const preciseFilter: FilterFn<any>;
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.3",
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": "ef7c38971275539431807881d3f80e00b393d34d"
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 : undefined,
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<TData extends object> = {
5
- data: TData[];
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<TData extends object>({ pagination, data, onPaginationChange }: UsePageResetProps<TData>) {
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
- }, [data.length, onPaginationChange, pagination]);
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
+ };