material-react-table 0.39.0 → 0.40.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/index.d.ts CHANGED
@@ -697,6 +697,7 @@ declare type MaterialReactTableProps<TData extends Record<string, any> = {}> = O
697
697
  rowNumberMode?: 'original' | 'static';
698
698
  selectAllMode?: 'all' | 'page';
699
699
  state?: Partial<MRT_TableState<TData>>;
700
+ tableInstanceRef?: MutableRefObject<MRT_TableInstance<TData> | null>;
700
701
  virtualizerProps?: Partial<Options<HTMLDivElement>> | (({ table, }: {
701
702
  table: MRT_TableInstance<TData>;
702
703
  }) => Partial<Options<HTMLDivElement>>);
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.39.0",
2
+ "version": "0.40.0",
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.",
@@ -841,6 +841,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
841
841
  rowNumberMode?: 'original' | 'static';
842
842
  selectAllMode?: 'all' | 'page';
843
843
  state?: Partial<MRT_TableState<TData>>;
844
+ tableInstanceRef?: MutableRefObject<MRT_TableInstance<TData> | null>;
844
845
  virtualizerProps?:
845
846
  | Partial<VirtualizerOptions<HTMLDivElement>>
846
847
  | (({
@@ -109,7 +109,8 @@ export const MRT_TableBodyCell: FC<Props> = ({
109
109
  [isLoading, showSkeletons],
110
110
  );
111
111
 
112
- const handleDoubleClick = (_event: MouseEvent<HTMLTableCellElement>) => {
112
+ const handleDoubleClick = (event: MouseEvent<HTMLTableCellElement>) => {
113
+ tableCellProps?.onDoubleClick?.(event);
113
114
  if (
114
115
  (enableEditing || columnDef.enableEditing) &&
115
116
  columnDef.enableEditing !== false &&
@@ -143,7 +144,8 @@ export const MRT_TableBodyCell: FC<Props> = ({
143
144
  );
144
145
  };
145
146
 
146
- const handleDragEnter = (_e: DragEvent) => {
147
+ const handleDragEnter = (e: DragEvent<HTMLTableCellElement>) => {
148
+ tableCellProps?.onDragEnter?.(e);
147
149
  if (enableGrouping && hoveredColumn?.id === 'drop-zone') {
148
150
  setHoveredColumn(null);
149
151
  }
@@ -179,9 +181,9 @@ export const MRT_TableBodyCell: FC<Props> = ({
179
181
 
180
182
  return (
181
183
  <TableCell
182
- onDoubleClick={handleDoubleClick}
183
- onDragEnter={handleDragEnter}
184
184
  {...tableCellProps}
185
+ onDragEnter={handleDragEnter}
186
+ onDoubleClick={handleDoubleClick}
185
187
  sx={(theme) => ({
186
188
  backgroundColor: column.getIsPinned()
187
189
  ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useRef, useState } from 'react';
1
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
2
2
  import {
3
3
  TableState,
4
4
  getCoreRowModel,
@@ -134,7 +134,7 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
134
134
  <MRT_ToggleRowActionMenuButton
135
135
  cell={cell as any}
136
136
  row={row as any}
137
- table={table}
137
+ table={table as any}
138
138
  />
139
139
  ),
140
140
  header: props.localization?.actions,
@@ -146,11 +146,11 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
146
146
  columnOrder.includes('mrt-row-expand') &&
147
147
  showExpandColumn(props, grouping) && {
148
148
  Cell: ({ row }) => (
149
- <MRT_ExpandButton row={row as any} table={table} />
149
+ <MRT_ExpandButton row={row as any} table={table as any} />
150
150
  ),
151
151
  Header: () =>
152
152
  props.enableExpandAll ? (
153
- <MRT_ExpandAllButton table={table} />
153
+ <MRT_ExpandAllButton table={table as any} />
154
154
  ) : null,
155
155
  header: props.localization?.expand,
156
156
  size: 60,
@@ -160,11 +160,11 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
160
160
  },
161
161
  columnOrder.includes('mrt-row-select') && {
162
162
  Cell: ({ row }) => (
163
- <MRT_SelectCheckbox row={row as any} table={table} />
163
+ <MRT_SelectCheckbox row={row as any} table={table as any} />
164
164
  ),
165
165
  Header: () =>
166
166
  props.enableSelectAll ? (
167
- <MRT_SelectCheckbox selectAll table={table} />
167
+ <MRT_SelectCheckbox selectAll table={table as any} />
168
168
  ) : null,
169
169
  header: props.localization?.select,
170
170
  size: 60,
@@ -301,7 +301,13 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
301
301
  setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,
302
302
  setShowFilters: props.onShowFiltersChange ?? setShowFilters,
303
303
  setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,
304
- } as MRT_TableInstance;
304
+ } as MRT_TableInstance<TData>;
305
+
306
+ useEffect(() => {
307
+ if (props.tableInstanceRef) {
308
+ props.tableInstanceRef.current = table;
309
+ }
310
+ }, []);
305
311
 
306
312
  return (
307
313
  <>
@@ -315,9 +321,9 @@ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
315
321
  open={isFullScreen}
316
322
  transitionDuration={400}
317
323
  >
318
- <MRT_TablePaper table={table} />
324
+ <MRT_TablePaper table={table as any} />
319
325
  </Dialog>
320
- {!isFullScreen && <MRT_TablePaper table={table} />}
326
+ {!isFullScreen && <MRT_TablePaper table={table as any} />}
321
327
  {editingRow && props.editingMode === 'modal' && (
322
328
  <MRT_EditRowModal row={editingRow as any} table={table} open />
323
329
  )}