material-react-table 1.5.1 → 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.
@@ -176,6 +176,7 @@ export type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<Tab
176
176
  setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
177
177
  setShowFilters: Dispatch<SetStateAction<boolean>>;
178
178
  setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
179
+ setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
179
180
  };
180
181
  export type MRT_TableState<TData extends Record<string, any> = {}> = TableState & {
181
182
  columnFilterFns: Record<string, MRT_FilterOption>;
@@ -198,6 +199,7 @@ export type MRT_TableState<TData extends Record<string, any> = {}> = TableState
198
199
  showGlobalFilter: boolean;
199
200
  showProgressBars: boolean;
200
201
  showSkeletons: boolean;
202
+ showToolbarDropZone: boolean;
201
203
  };
202
204
  export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'aggregatedCell' | 'aggregationFn' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'id' | 'sortingFn'> & {
203
205
  AggregatedCell?: ({ cell, column, row, table, }: {
@@ -636,6 +638,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
636
638
  onShowAlertBannerChange?: OnChangeFn<boolean>;
637
639
  onShowFiltersChange?: OnChangeFn<boolean>;
638
640
  onShowGlobalFilterChange?: OnChangeFn<boolean>;
641
+ onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
639
642
  positionActionsColumn?: 'first' | 'last';
640
643
  positionExpandColumn?: 'first' | 'last';
641
644
  positionGlobalFilter?: 'left' | 'right' | 'none';
@@ -199,6 +199,7 @@ export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(pro
199
199
  onShowAlertBannerChange?: import("@tanstack/react-table").OnChangeFn<boolean> | undefined;
200
200
  onShowFiltersChange?: import("@tanstack/react-table").OnChangeFn<boolean> | undefined;
201
201
  onShowGlobalFilterChange?: import("@tanstack/react-table").OnChangeFn<boolean> | undefined;
202
+ onShowToolbarDropZoneChange?: import("@tanstack/react-table").OnChangeFn<boolean> | undefined;
202
203
  positionActionsColumn?: "first" | "last" | undefined;
203
204
  positionExpandColumn?: "first" | "last" | undefined;
204
205
  positionGlobalFilter?: "left" | "right" | "none" | undefined;
package/dist/index.d.ts CHANGED
@@ -299,6 +299,7 @@ type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<Table<TDat
299
299
  setShowAlertBanner: Dispatch<SetStateAction<boolean>>;
300
300
  setShowFilters: Dispatch<SetStateAction<boolean>>;
301
301
  setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
302
+ setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
302
303
  };
303
304
  type MRT_TableState<TData extends Record<string, any> = {}> = TableState & {
304
305
  columnFilterFns: Record<string, MRT_FilterOption>;
@@ -321,6 +322,7 @@ type MRT_TableState<TData extends Record<string, any> = {}> = TableState & {
321
322
  showGlobalFilter: boolean;
322
323
  showProgressBars: boolean;
323
324
  showSkeletons: boolean;
325
+ showToolbarDropZone: boolean;
324
326
  };
325
327
  type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'aggregatedCell' | 'aggregationFn' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'id' | 'sortingFn'> & {
326
328
  AggregatedCell?: ({ cell, column, row, table, }: {
@@ -759,6 +761,7 @@ type MaterialReactTableProps<TData extends Record<string, any> = {}> = Omit<Part
759
761
  onShowAlertBannerChange?: OnChangeFn<boolean>;
760
762
  onShowFiltersChange?: OnChangeFn<boolean>;
761
763
  onShowGlobalFilterChange?: OnChangeFn<boolean>;
764
+ onShowToolbarDropZoneChange?: OnChangeFn<boolean>;
762
765
  positionActionsColumn?: 'first' | 'last';
763
766
  positionExpandColumn?: 'first' | 'last';
764
767
  positionGlobalFilter?: 'left' | 'right' | 'none';
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.5.1",
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.",
@@ -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';
@@ -41,11 +41,13 @@ export const MRT_ShowHideColumnsButton = <
41
41
  <ViewColumnIcon />
42
42
  </IconButton>
43
43
  </Tooltip>
44
- <MRT_ShowHideColumnsMenu
45
- anchorEl={anchorEl}
46
- setAnchorEl={setAnchorEl}
47
- table={table}
48
- />
44
+ {anchorEl && (
45
+ <MRT_ShowHideColumnsMenu
46
+ anchorEl={anchorEl}
47
+ setAnchorEl={setAnchorEl}
48
+ table={table}
49
+ />
50
+ )}
49
51
  </>
50
52
  );
51
53
  };
@@ -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 } = getState();
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
- return (
28
- <Fade
29
- unmountOnExit
30
- mountOnEnter
31
- in={
29
+ useEffect(() => {
30
+ if (table.options.state?.showToolbarDropZone !== undefined) {
31
+ setShowToolbarDropZone(
32
32
  !!enableGrouping &&
33
- !!draggingColumn &&
34
- !grouping.includes(draggingColumn.id)
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(