material-react-table 1.5.0 → 1.5.2
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/README.md +1 -1
- package/dist/cjs/index.js +29 -17
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/MaterialReactTable.d.ts +3 -0
- package/dist/cjs/types/_locales/zh-Hans.d.ts +2 -0
- package/dist/cjs/types/_locales/zh-Hant.d.ts +2 -0
- package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +6 -6
- package/dist/cjs/types/index.d.ts +2 -1
- package/dist/cjs/types/table/MRT_TableRoot.d.ts +1 -0
- package/dist/esm/material-react-table.esm.js +29 -18
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/MaterialReactTable.d.ts +3 -0
- package/dist/esm/types/_locales/zh-Hans.d.ts +2 -0
- package/dist/esm/types/_locales/zh-Hant.d.ts +2 -0
- package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +6 -6
- package/dist/esm/types/index.d.ts +2 -1
- package/dist/esm/types/table/MRT_TableRoot.d.ts +1 -0
- package/dist/index.d.ts +31 -21
- package/locales/zh-Hans.d.ts +2 -0
- package/locales/zh-Hans.esm.d.ts +2 -0
- package/locales/zh-Hans.esm.js +94 -0
- package/locales/zh-Hans.esm.js.map +1 -0
- package/locales/zh-Hans.js +98 -0
- package/locales/zh-Hans.js.map +1 -0
- package/locales/zh-Hant.d.ts +2 -0
- package/locales/zh-Hant.esm.d.ts +2 -0
- package/locales/zh-Hant.esm.js +94 -0
- package/locales/zh-Hant.esm.js.map +1 -0
- package/locales/zh-Hant.js +98 -0
- package/locales/zh-Hant.js.map +1 -0
- package/package.json +11 -11
- package/src/MaterialReactTable.tsx +10 -0
- package/src/_locales/zh-Hans.ts +94 -0
- package/src/_locales/zh-Hant.ts +94 -0
- package/src/body/MRT_TableBody.tsx +1 -4
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +7 -5
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +11 -9
- package/src/footer/MRT_TableFooter.tsx +1 -0
- package/src/index.tsx +2 -0
- package/src/table/MRT_TableRoot.tsx +5 -0
- package/src/toolbar/MRT_ToolbarDropZone.tsx +16 -11
package/package.json
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
{
|
2
|
-
"version": "1.5.
|
2
|
+
"version": "1.5.2",
|
3
3
|
"license": "MIT",
|
4
4
|
"name": "material-react-table",
|
5
5
|
"description": "A fully featured Material UI V5 implementation of TanStack React Table V8, written from the ground up in TypeScript.",
|
@@ -45,30 +45,30 @@
|
|
45
45
|
"node": ">=14"
|
46
46
|
},
|
47
47
|
"scripts": {
|
48
|
-
"build": "rm -rf dist
|
49
|
-
"dev": "rm -rf dist
|
50
|
-
"lib:build": "rm -rf dist
|
51
|
-
"lib:dev": "rm -rf dist
|
48
|
+
"build": "rm -rf dist && rollup -c && size-limit",
|
49
|
+
"dev": "rm -rf dist && rollup -c -w",
|
50
|
+
"lib:build": "rm -rf dist && rollup -c && size-limit",
|
51
|
+
"lib:dev": "rm -rf dist && rollup -c -w",
|
52
52
|
"lint": "eslint .",
|
53
53
|
"size": "size-limit"
|
54
54
|
},
|
55
55
|
"devDependencies": {
|
56
|
-
"@babel/core": "^7.20.
|
56
|
+
"@babel/core": "^7.20.7",
|
57
57
|
"@babel/preset-react": "^7.18.6",
|
58
58
|
"@emotion/react": "^11.10.5",
|
59
59
|
"@emotion/styled": "^11.10.5",
|
60
60
|
"@mui/icons-material": "^5.11.0",
|
61
|
-
"@mui/material": "^5.11.
|
61
|
+
"@mui/material": "^5.11.1",
|
62
62
|
"@rollup/plugin-babel": "^6.0.3",
|
63
63
|
"@rollup/plugin-node-resolve": "^15.0.1",
|
64
64
|
"@rollup/plugin-typescript": "^10.0.1",
|
65
65
|
"@size-limit/preset-small-lib": "^8.1.0",
|
66
|
-
"@types/node": "^18.11.
|
66
|
+
"@types/node": "^18.11.17",
|
67
67
|
"@types/react": "^18.0.26",
|
68
68
|
"@types/react-dom": "^18.0.9",
|
69
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
70
|
-
"@typescript-eslint/parser": "^5.
|
71
|
-
"eslint": "^8.
|
69
|
+
"@typescript-eslint/eslint-plugin": "^5.47.0",
|
70
|
+
"@typescript-eslint/parser": "^5.47.0",
|
71
|
+
"eslint": "^8.30.0",
|
72
72
|
"eslint-plugin-mui-path-imports": "^0.0.7",
|
73
73
|
"react": "^18.2.0",
|
74
74
|
"react-dom": "^18.2.0",
|
@@ -222,6 +222,7 @@ export type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<
|
|
222
222
|
setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
|
223
223
|
setShowFilters: Dispatch<SetStateAction<boolean>>;
|
224
224
|
setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
|
225
|
+
setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
|
225
226
|
};
|
226
227
|
|
227
228
|
export type MRT_TableState<TData extends Record<string, any> = {}> =
|
@@ -242,6 +243,7 @@ export type MRT_TableState<TData extends Record<string, any> = {}> =
|
|
242
243
|
showGlobalFilter: boolean;
|
243
244
|
showProgressBars: boolean;
|
244
245
|
showSkeletons: boolean;
|
246
|
+
showToolbarDropZone: boolean;
|
245
247
|
};
|
246
248
|
|
247
249
|
export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<
|
@@ -971,6 +973,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
|
|
971
973
|
onShowAlertBannerChange?: OnChangeFn<boolean>;
|
972
974
|
onShowFiltersChange?: OnChangeFn<boolean>;
|
973
975
|
onShowGlobalFilterChange?: OnChangeFn<boolean>;
|
976
|
+
onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
|
974
977
|
positionActionsColumn?: 'first' | 'last';
|
975
978
|
positionExpandColumn?: 'first' | 'last';
|
976
979
|
positionGlobalFilter?: 'left' | 'right' | 'none';
|
@@ -1170,9 +1173,16 @@ const MaterialReactTable = <TData extends Record<string, any> = {}>({
|
|
1170
1173
|
|
1171
1174
|
if (rest.enableRowVirtualization || rest.enableColumnVirtualization) {
|
1172
1175
|
layoutMode = 'grid';
|
1176
|
+
}
|
1177
|
+
|
1178
|
+
if (rest.enableRowVirtualization) {
|
1173
1179
|
enableStickyHeader = true;
|
1174
1180
|
}
|
1175
1181
|
|
1182
|
+
if (enablePagination === false && manualPagination === undefined) {
|
1183
|
+
manualPagination = true;
|
1184
|
+
}
|
1185
|
+
|
1176
1186
|
if (!rest.data?.length) {
|
1177
1187
|
manualFiltering = true;
|
1178
1188
|
manualGrouping = true;
|
@@ -0,0 +1,94 @@
|
|
1
|
+
import type { MRT_Localization } from '../MaterialReactTable';
|
2
|
+
|
3
|
+
export const MRT_Localization_ZH_HANS: MRT_Localization = {
|
4
|
+
actions: '动作',
|
5
|
+
and: '与',
|
6
|
+
cancel: '取消',
|
7
|
+
changeFilterMode: '更改过滤模式',
|
8
|
+
changeSearchMode: '更改搜寻模式',
|
9
|
+
clearFilter: '清除过滤',
|
10
|
+
clearSearch: '清除搜寻',
|
11
|
+
clearSort: '清除排序',
|
12
|
+
clickToCopy: '点击以复制',
|
13
|
+
collapse: '折叠',
|
14
|
+
collapseAll: '全部折叠',
|
15
|
+
columnActions: '栏位动作',
|
16
|
+
copiedToClipboard: '已复制至剪贴板',
|
17
|
+
dropToGroupBy: '拖放以按 {column} 分组',
|
18
|
+
edit: '编辑',
|
19
|
+
expand: '展开',
|
20
|
+
expandAll: '全部展开',
|
21
|
+
filterArrIncludes: '包括',
|
22
|
+
filterArrIncludesAll: '包括所有',
|
23
|
+
filterArrIncludesSome: '包括',
|
24
|
+
filterBetween: '介于首尾',
|
25
|
+
filterBetweenInclusive: '介于首尾之间',
|
26
|
+
filterByColumn: '以 {column} 过滤',
|
27
|
+
filterContains: '包含',
|
28
|
+
filterEmpty: '是空字串',
|
29
|
+
filterEndsWith: '结尾为',
|
30
|
+
filterEquals: '等于',
|
31
|
+
filterEqualsString: '等于',
|
32
|
+
filterFuzzy: '模糊搜索',
|
33
|
+
filterGreaterThan: '大于',
|
34
|
+
filterGreaterThanOrEqualTo: '大于等于',
|
35
|
+
filterInNumberRange: '介于',
|
36
|
+
filterIncludesString: '包含',
|
37
|
+
filterIncludesStringSensitive: '包含',
|
38
|
+
filterLessThan: '小于',
|
39
|
+
filterLessThanOrEqualTo: '小于等于',
|
40
|
+
filterMode: '过滤模式:{filterType}',
|
41
|
+
filterNotEmpty: '非空字串',
|
42
|
+
filterNotEquals: '不等于',
|
43
|
+
filterStartsWith: '开首为',
|
44
|
+
filterWeakEquals: '等于',
|
45
|
+
filteringByColumn: '正以 {column} 过滤:{filterType} {filterValue}',
|
46
|
+
goToFirstPage: '到第一页',
|
47
|
+
goToLastPage: '到最后一页',
|
48
|
+
goToNextPage: '下一页',
|
49
|
+
goToPreviousPage: '上一页',
|
50
|
+
grab: '拖曳',
|
51
|
+
groupByColumn: '按 {column} 分组',
|
52
|
+
groupedBy: '分组依据 ',
|
53
|
+
hideAll: '隐藏全部',
|
54
|
+
hideColumn: '隐藏 {column} 栏位',
|
55
|
+
max: '最大',
|
56
|
+
min: '最小',
|
57
|
+
move: '移动',
|
58
|
+
noRecordsToDisplay: '无纪录可显示',
|
59
|
+
noResultsFound: '未找到结果',
|
60
|
+
of: '/',
|
61
|
+
or: '或',
|
62
|
+
pinToLeft: '固定至左边',
|
63
|
+
pinToRight: '固定至右边',
|
64
|
+
resetColumnSize: '重置栏位大小',
|
65
|
+
resetOrder: '重置排序',
|
66
|
+
rowActions: '横列动作',
|
67
|
+
rowNumber: '#',
|
68
|
+
rowNumbers: '横列号码',
|
69
|
+
rowsPerPage: '每页横列数目',
|
70
|
+
save: '储存',
|
71
|
+
search: '搜寻',
|
72
|
+
selectedCountOfRowCountRowsSelected:
|
73
|
+
'已选择横列:{selectedCount}/{rowCount}',
|
74
|
+
select: '选择',
|
75
|
+
showAll: '显示全部',
|
76
|
+
showAllColumns: '显示全部栏位',
|
77
|
+
showHideColumns: '显示/隐藏 栏位',
|
78
|
+
showHideFilters: '显示/隐藏 过滤条件',
|
79
|
+
showHideSearch: '显示/隐藏 搜寻条件',
|
80
|
+
sortByColumnAsc: '按 {column} 顺序排序',
|
81
|
+
sortByColumnDesc: '按 {column} 倒序排序',
|
82
|
+
sortedByColumnAsc: '已按 {column} 顺序排序',
|
83
|
+
sortedByColumnDesc: '已按 {column} 倒序排序',
|
84
|
+
thenBy: ',然后以',
|
85
|
+
toggleDensity: '切换密度',
|
86
|
+
toggleFullScreen: '切换',
|
87
|
+
toggleSelectAll: '切换选择全部',
|
88
|
+
toggleSelectRow: '切换选择横列',
|
89
|
+
toggleVisibility: '切换可见度',
|
90
|
+
ungroupByColumn: '取消按 {column} 分组',
|
91
|
+
unpin: '取消固定',
|
92
|
+
unpinAll: '全部取消固定',
|
93
|
+
unsorted: '取消排序',
|
94
|
+
};
|
@@ -0,0 +1,94 @@
|
|
1
|
+
import type { MRT_Localization } from '../MaterialReactTable';
|
2
|
+
|
3
|
+
export const MRT_Localization_ZH_HANT: MRT_Localization = {
|
4
|
+
actions: '動作',
|
5
|
+
and: '與',
|
6
|
+
cancel: '取消',
|
7
|
+
changeFilterMode: '更改過濾模式',
|
8
|
+
changeSearchMode: '更改搜尋模式',
|
9
|
+
clearFilter: '清除過濾',
|
10
|
+
clearSearch: '清除搜尋',
|
11
|
+
clearSort: '清除排序',
|
12
|
+
clickToCopy: '點擊以複製',
|
13
|
+
collapse: '折疊',
|
14
|
+
collapseAll: '全部折疊',
|
15
|
+
columnActions: '欄位動作',
|
16
|
+
copiedToClipboard: '已複製至剪貼板',
|
17
|
+
dropToGroupBy: '拖放以按 {column} 分組',
|
18
|
+
edit: '編輯',
|
19
|
+
expand: '展開',
|
20
|
+
expandAll: '全部展開',
|
21
|
+
filterArrIncludes: '包括',
|
22
|
+
filterArrIncludesAll: '包括所有',
|
23
|
+
filterArrIncludesSome: '包括',
|
24
|
+
filterBetween: '介於首尾',
|
25
|
+
filterBetweenInclusive: '介於首尾之間',
|
26
|
+
filterByColumn: '以 {column} 過濾',
|
27
|
+
filterContains: '包含',
|
28
|
+
filterEmpty: '是空字串',
|
29
|
+
filterEndsWith: '結尾為',
|
30
|
+
filterEquals: '等於',
|
31
|
+
filterEqualsString: '等於',
|
32
|
+
filterFuzzy: '模糊搜索',
|
33
|
+
filterGreaterThan: '大於',
|
34
|
+
filterGreaterThanOrEqualTo: '大於等於',
|
35
|
+
filterInNumberRange: '介於',
|
36
|
+
filterIncludesString: '包含',
|
37
|
+
filterIncludesStringSensitive: '包含',
|
38
|
+
filterLessThan: '小於',
|
39
|
+
filterLessThanOrEqualTo: '小於等於',
|
40
|
+
filterMode: '過濾模式:{filterType}',
|
41
|
+
filterNotEmpty: '非空字串',
|
42
|
+
filterNotEquals: '不等於',
|
43
|
+
filterStartsWith: '開首為',
|
44
|
+
filterWeakEquals: '等於',
|
45
|
+
filteringByColumn: '正以 {column} 過濾:{filterType} {filterValue}',
|
46
|
+
goToFirstPage: '到第一頁',
|
47
|
+
goToLastPage: '到最後一頁',
|
48
|
+
goToNextPage: '下一頁',
|
49
|
+
goToPreviousPage: '上一頁',
|
50
|
+
grab: '拖曳',
|
51
|
+
groupByColumn: '按 {column} 分組',
|
52
|
+
groupedBy: '分組依據 ',
|
53
|
+
hideAll: '隱藏全部',
|
54
|
+
hideColumn: '隱藏 {column} 欄位',
|
55
|
+
max: '最大',
|
56
|
+
min: '最小',
|
57
|
+
move: '移動',
|
58
|
+
noRecordsToDisplay: '無紀錄可顯示',
|
59
|
+
noResultsFound: '未找到結果',
|
60
|
+
of: '/',
|
61
|
+
or: '或',
|
62
|
+
pinToLeft: '固定至左邊',
|
63
|
+
pinToRight: '固定至右邊',
|
64
|
+
resetColumnSize: '重置欄位大小',
|
65
|
+
resetOrder: '重置排序',
|
66
|
+
rowActions: '橫列動作',
|
67
|
+
rowNumber: '#',
|
68
|
+
rowNumbers: '橫列號碼',
|
69
|
+
rowsPerPage: '每頁橫列數目',
|
70
|
+
save: '儲存',
|
71
|
+
search: '搜尋',
|
72
|
+
selectedCountOfRowCountRowsSelected:
|
73
|
+
'已選擇橫列:{selectedCount}/{rowCount}',
|
74
|
+
select: '選擇',
|
75
|
+
showAll: '顯示全部',
|
76
|
+
showAllColumns: '顯示全部欄位',
|
77
|
+
showHideColumns: '顯示/隱藏 欄位',
|
78
|
+
showHideFilters: '顯示/隱藏 過濾條件',
|
79
|
+
showHideSearch: '顯示/隱藏 搜尋條件',
|
80
|
+
sortByColumnAsc: '按 {column} 順序排序',
|
81
|
+
sortByColumnDesc: '按 {column} 倒序排序',
|
82
|
+
sortedByColumnAsc: '已按 {column} 順序排序',
|
83
|
+
sortedByColumnDesc: '已按 {column} 倒序排序',
|
84
|
+
thenBy: ',然後以',
|
85
|
+
toggleDensity: '切換密度',
|
86
|
+
toggleFullScreen: '切換',
|
87
|
+
toggleSelectAll: '切換選擇全部',
|
88
|
+
toggleSelectRow: '切換選擇橫列',
|
89
|
+
toggleVisibility: '切換可見度',
|
90
|
+
ungroupByColumn: '取消按 {column} 分組',
|
91
|
+
unpin: '取消固定',
|
92
|
+
unpinAll: '全部取消固定',
|
93
|
+
unsorted: '取消排序',
|
94
|
+
};
|
@@ -81,10 +81,7 @@ export const MRT_TableBody: FC<Props> = ({
|
|
81
81
|
}
|
82
82
|
return rankedRows;
|
83
83
|
}
|
84
|
-
|
85
|
-
return enablePagination
|
86
|
-
? getRowModel().rows
|
87
|
-
: getPrePaginationRowModel().rows;
|
84
|
+
return getRowModel().rows;
|
88
85
|
}, [
|
89
86
|
enableGlobalFilterRankedResults,
|
90
87
|
(enableGlobalFilterRankedResults && globalFilter) || !enablePagination
|
@@ -41,11 +41,13 @@ export const MRT_ShowHideColumnsButton = <
|
|
41
41
|
<ViewColumnIcon />
|
42
42
|
</IconButton>
|
43
43
|
</Tooltip>
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
{anchorEl && (
|
45
|
+
<MRT_ShowHideColumnsMenu
|
46
|
+
anchorEl={anchorEl}
|
47
|
+
setAnchorEl={setAnchorEl}
|
48
|
+
table={table}
|
49
|
+
/>
|
50
|
+
)}
|
49
51
|
</>
|
50
52
|
);
|
51
53
|
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, {
|
1
|
+
import React, { MouseEvent, useState } from 'react';
|
2
2
|
import IconButton from '@mui/material/IconButton';
|
3
3
|
import Tooltip from '@mui/material/Tooltip';
|
4
4
|
import { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu';
|
@@ -16,17 +16,19 @@ const commonIconButtonStyles = {
|
|
16
16
|
},
|
17
17
|
};
|
18
18
|
|
19
|
-
interface Props {
|
20
|
-
cell: MRT_Cell
|
21
|
-
row: MRT_Row
|
22
|
-
table: MRT_TableInstance
|
19
|
+
interface Props<TData extends Record<string, any> = {}> {
|
20
|
+
cell: MRT_Cell<TData>;
|
21
|
+
row: MRT_Row<TData>;
|
22
|
+
table: MRT_TableInstance<TData>;
|
23
23
|
}
|
24
24
|
|
25
|
-
export const MRT_ToggleRowActionMenuButton
|
25
|
+
export const MRT_ToggleRowActionMenuButton = <
|
26
|
+
TData extends Record<string, any> = {},
|
27
|
+
>({
|
26
28
|
cell,
|
27
29
|
row,
|
28
30
|
table,
|
29
|
-
}) => {
|
31
|
+
}: Props<TData>) => {
|
30
32
|
const {
|
31
33
|
getState,
|
32
34
|
options: {
|
@@ -92,9 +94,9 @@ export const MRT_ToggleRowActionMenuButton: FC<Props> = ({
|
|
92
94
|
<MRT_RowActionMenu
|
93
95
|
anchorEl={anchorEl}
|
94
96
|
handleEdit={handleStartEditMode}
|
95
|
-
row={row}
|
97
|
+
row={row as any}
|
96
98
|
setAnchorEl={setAnchorEl}
|
97
|
-
table={table}
|
99
|
+
table={table as any}
|
98
100
|
/>
|
99
101
|
</>
|
100
102
|
) : null}
|
@@ -47,6 +47,7 @@ export const MRT_TableFooter: FC<Props> = ({
|
|
47
47
|
: `1px solid ${theme.palette.grey[700]}`
|
48
48
|
: undefined,
|
49
49
|
position: stickFooter ? 'sticky' : undefined,
|
50
|
+
zIndex: stickFooter ? 1 : undefined,
|
50
51
|
...(tableFooterProps?.sx instanceof Function
|
51
52
|
? tableFooterProps?.sx(theme)
|
52
53
|
: (tableFooterProps?.sx as any)),
|
package/src/index.tsx
CHANGED
@@ -17,6 +17,7 @@ import { MRT_ToggleGlobalFilterButton } from './buttons/MRT_ToggleGlobalFilterBu
|
|
17
17
|
import { MRT_ToolbarAlertBanner } from './toolbar/MRT_ToolbarAlertBanner';
|
18
18
|
import { MRT_ToolbarDropZone } from './toolbar/MRT_ToolbarDropZone';
|
19
19
|
import { MRT_ToolbarInternalButtons } from './toolbar/MRT_ToolbarInternalButtons';
|
20
|
+
import { MRT_ToggleRowActionMenuButton } from './buttons/MRT_ToggleRowActionMenuButton';
|
20
21
|
|
21
22
|
export {
|
22
23
|
MRT_CopyButton,
|
@@ -31,4 +32,5 @@ export {
|
|
31
32
|
MRT_ToolbarAlertBanner,
|
32
33
|
MRT_ToolbarDropZone,
|
33
34
|
MRT_ToolbarInternalButtons,
|
35
|
+
MRT_ToggleRowActionMenuButton,
|
34
36
|
};
|
@@ -117,6 +117,9 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
117
117
|
const [showGlobalFilter, setShowGlobalFilter] = useState(
|
118
118
|
initialState?.showGlobalFilter ?? false,
|
119
119
|
);
|
120
|
+
const [showToolbarDropZone, setShowToolbarDropZone] = useState(
|
121
|
+
initialState?.showToolbarDropZone ?? false,
|
122
|
+
);
|
120
123
|
|
121
124
|
const displayColumns = useMemo(
|
122
125
|
() =>
|
@@ -284,6 +287,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
284
287
|
showAlertBanner,
|
285
288
|
showColumnFilters,
|
286
289
|
showGlobalFilter,
|
290
|
+
showToolbarDropZone,
|
287
291
|
...props.state,
|
288
292
|
} as TableState,
|
289
293
|
}),
|
@@ -310,6 +314,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
|
|
310
314
|
setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,
|
311
315
|
setShowFilters: props.onShowFiltersChange ?? setShowFilters,
|
312
316
|
setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,
|
317
|
+
setShowToolbarDropZone: props.onShowToolbarDropZoneChange ?? setShowToolbarDropZone,
|
313
318
|
} as MRT_TableInstance<TData>;
|
314
319
|
|
315
320
|
if (props.tableInstanceRef) {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { DragEvent } from 'react';
|
1
|
+
import React, { DragEvent, useEffect } from 'react';
|
2
2
|
import { alpha } from '@mui/material/styles';
|
3
3
|
import Box from '@mui/material/Box';
|
4
4
|
import Fade from '@mui/material/Fade';
|
@@ -16,25 +16,30 @@ export const MRT_ToolbarDropZone = <TData extends Record<string, any> = {}>({
|
|
16
16
|
getState,
|
17
17
|
options: { enableGrouping, localization },
|
18
18
|
setHoveredColumn,
|
19
|
+
setShowToolbarDropZone,
|
19
20
|
} = table;
|
20
21
|
|
21
|
-
const { draggingColumn, hoveredColumn, grouping } =
|
22
|
+
const { draggingColumn, hoveredColumn, grouping, showToolbarDropZone } =
|
23
|
+
getState();
|
22
24
|
|
23
25
|
const handleDragEnter = (_event: DragEvent<HTMLDivElement>) => {
|
24
26
|
setHoveredColumn({ id: 'drop-zone' });
|
25
27
|
};
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
mountOnEnter
|
31
|
-
in={
|
29
|
+
useEffect(() => {
|
30
|
+
if (table.options.state?.showToolbarDropZone !== undefined) {
|
31
|
+
setShowToolbarDropZone(
|
32
32
|
!!enableGrouping &&
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
!!draggingColumn &&
|
34
|
+
!grouping.includes(draggingColumn.id),
|
35
|
+
);
|
36
|
+
}
|
37
|
+
}, [enableGrouping, draggingColumn, grouping]);
|
38
|
+
|
39
|
+
return (
|
40
|
+
<Fade in={showToolbarDropZone}>
|
37
41
|
<Box
|
42
|
+
className="Mui-ToolbarDropZone"
|
38
43
|
sx={(theme) => ({
|
39
44
|
alignItems: 'center',
|
40
45
|
backgroundColor: alpha(
|