material-react-table 3.2.0 → 3.2.1
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/index.esm.js +34 -23
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +34 -23
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/buttons/MRT_ToggleGlobalFilterButton.tsx +1 -1
- package/src/components/head/MRT_TableHeadCellGrabHandle.tsx +7 -3
- package/src/components/inputs/MRT_FilterTextField.tsx +2 -2
- package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +7 -1
- package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +3 -2
- package/src/hooks/useMRT_Effects.ts +6 -3
package/package.json
CHANGED
@@ -32,7 +32,7 @@ export const MRT_ToggleGlobalFilterButton = <TData extends MRT_RowData>({
|
|
32
32
|
<Tooltip title={rest?.title ?? localization.showHideSearch}>
|
33
33
|
<IconButton
|
34
34
|
aria-label={rest?.title ?? localization.showHideSearch}
|
35
|
-
disabled={!!globalFilter}
|
35
|
+
disabled={!!globalFilter && showGlobalFilter}
|
36
36
|
onClick={handleToggleSearch}
|
37
37
|
{...rest}
|
38
38
|
title={undefined}
|
@@ -26,6 +26,7 @@ export const MRT_TableHeadCellGrabHandle = <TData extends MRT_RowData>({
|
|
26
26
|
getState,
|
27
27
|
options: { enableColumnOrdering, muiColumnDragHandleProps },
|
28
28
|
setColumnOrder,
|
29
|
+
setColumnPinning,
|
29
30
|
setDraggingColumn,
|
30
31
|
setHoveredColumn,
|
31
32
|
} = table;
|
@@ -64,9 +65,12 @@ export const MRT_TableHeadCellGrabHandle = <TData extends MRT_RowData>({
|
|
64
65
|
hoveredColumn &&
|
65
66
|
hoveredColumn?.id !== draggingColumn?.id
|
66
67
|
) {
|
67
|
-
|
68
|
-
|
69
|
-
)
|
68
|
+
const reorderedColumns = reorderColumn(column, hoveredColumn as MRT_Column<TData>, columnOrder);
|
69
|
+
setColumnOrder(reorderedColumns);
|
70
|
+
setColumnPinning(({ left = [], right = [] }) => ({
|
71
|
+
left: reorderedColumns.filter(header => left.includes(header)),
|
72
|
+
right: reorderedColumns.filter(header => right.includes(header)),
|
73
|
+
}));
|
70
74
|
}
|
71
75
|
setDraggingColumn(null);
|
72
76
|
setHoveredColumn(null);
|
@@ -343,8 +343,8 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
|
|
343
343
|
...textFieldProps.slotProps?.formHelperText,
|
344
344
|
},
|
345
345
|
input: endAdornment //hack because mui looks for presence of endAdornment key instead of undefined
|
346
|
-
? {
|
347
|
-
: {
|
346
|
+
? {endAdornment, startAdornment, ...textFieldProps.slotProps?.input}
|
347
|
+
: {startAdornment, ...textFieldProps.slotProps?.input},
|
348
348
|
htmlInput: {
|
349
349
|
'aria-label': filterPlaceholder,
|
350
350
|
autoComplete: 'off',
|
@@ -51,6 +51,7 @@ export const MRT_ShowHideColumnsMenuItems = <TData extends MRT_RowData>({
|
|
51
51
|
mrtTheme: { draggingBorderColor },
|
52
52
|
},
|
53
53
|
setColumnOrder,
|
54
|
+
setColumnPinning,
|
54
55
|
} = table;
|
55
56
|
const { columnOrder } = getState();
|
56
57
|
const { columnDef } = column;
|
@@ -85,7 +86,12 @@ export const MRT_ShowHideColumnsMenuItems = <TData extends MRT_RowData>({
|
|
85
86
|
setIsDragging(false);
|
86
87
|
setHoveredColumn(null);
|
87
88
|
if (hoveredColumn) {
|
88
|
-
|
89
|
+
const reorderedColumns = reorderColumn(column, hoveredColumn, columnOrder);
|
90
|
+
setColumnOrder(reorderedColumns);
|
91
|
+
setColumnPinning(({ left = [], right = [] }) => ({
|
92
|
+
left: reorderedColumns.filter(header => left.includes(header)),
|
93
|
+
right: reorderedColumns.filter(header => right.includes(header)),
|
94
|
+
}));
|
89
95
|
}
|
90
96
|
};
|
91
97
|
|
@@ -53,13 +53,14 @@ export const MRT_ToolbarAlertBanner = <TData extends MRT_RowData>({
|
|
53
53
|
});
|
54
54
|
|
55
55
|
const totalRowCount = rowCount ?? getCoreRowModel().rows.length;
|
56
|
+
const filteredRowCount = getFilteredSelectedRowModel().rows.length;
|
56
57
|
|
57
58
|
const selectedRowCount = useMemo(
|
58
59
|
() =>
|
59
60
|
manualPagination
|
60
61
|
? Object.values(rowSelection).filter(Boolean).length
|
61
|
-
:
|
62
|
-
[rowSelection, totalRowCount, manualPagination],
|
62
|
+
: filteredRowCount,
|
63
|
+
[rowSelection, totalRowCount, manualPagination, filteredRowCount],
|
63
64
|
);
|
64
65
|
const selectedAlert =
|
65
66
|
selectedRowCount > 0 ? (
|
@@ -69,9 +69,12 @@ export const useMRT_Effects = <TData extends MRT_RowData>(
|
|
69
69
|
useEffect(() => {
|
70
70
|
if (!enablePagination || isLoading || showSkeletons) return;
|
71
71
|
const { pageIndex, pageSize } = pagination;
|
72
|
-
const
|
73
|
-
|
74
|
-
|
72
|
+
const totalPages: number =
|
73
|
+
totalRowCount > 0 ? Math.ceil(totalRowCount / pageSize) : 1;
|
74
|
+
const isOutOfBounds: boolean = pageIndex < 0 || pageIndex >= totalPages;
|
75
|
+
|
76
|
+
if (isOutOfBounds) {
|
77
|
+
table.setPageIndex(totalPages - 1);
|
75
78
|
}
|
76
79
|
}, [totalRowCount, enablePagination, isLoading, showSkeletons]);
|
77
80
|
|