diff --git a/packages/material-react-table/src/components/body/MRT_TableBody.tsx b/packages/material-react-table/src/components/body/MRT_TableBody.tsx index 1f6edae72..efa014b22 100644 --- a/packages/material-react-table/src/components/body/MRT_TableBody.tsx +++ b/packages/material-react-table/src/components/body/MRT_TableBody.tsx @@ -19,6 +19,8 @@ export interface MRT_TableBodyProps table: MRT_TableInstance; } +type MRT_TableBody_WithMemoizationHintsProps = MRT_TableBodyProps & { skipMemoization?: boolean; } + export const MRT_TableBody = ({ columnVirtualizer, table, @@ -134,9 +136,8 @@ export const MRT_TableBody = ({ sx={{ color: 'text.secondary', fontStyle: 'italic', - maxWidth: `min(100vw, ${ - tablePaperRef.current?.clientWidth ?? 360 - }px)`, + maxWidth: `min(100vw, ${tablePaperRef.current?.clientWidth ?? 360 + }px)`, py: '2rem', textAlign: 'center', width: '100%', @@ -215,7 +216,14 @@ export const MRT_TableBody = ({ ); }; +const MRT_TableBody_WithMemoizationHints = (props: MRT_TableBody_WithMemoizationHintsProps) => { + const { skipMemoization, ...rest } = props; + return ; +}; + export const Memo_MRT_TableBody = memo( - MRT_TableBody, - (prev, next) => prev.table.options.data === next.table.options.data, -) as typeof MRT_TableBody; + MRT_TableBody_WithMemoizationHints, + (prev, next) => + prev.table.options.data === next.table.options.data && + !next.skipMemoization +) as typeof MRT_TableBody_WithMemoizationHints diff --git a/packages/material-react-table/src/components/table/MRT_Table.tsx b/packages/material-react-table/src/components/table/MRT_Table.tsx index f27896ae7..40a7279c3 100644 --- a/packages/material-react-table/src/components/table/MRT_Table.tsx +++ b/packages/material-react-table/src/components/table/MRT_Table.tsx @@ -4,7 +4,7 @@ import { useMRT_ColumnVirtualizer } from '../../hooks/useMRT_ColumnVirtualizer'; import { type MRT_RowData, type MRT_TableInstance } from '../../types'; import { parseCSSVarId } from '../../utils/style.utils'; import { parseFromValuesOrFunc } from '../../utils/utils'; -import { MRT_TableBody, Memo_MRT_TableBody } from '../body/MRT_TableBody'; +import { Memo_MRT_TableBody } from '../body/MRT_TableBody'; import { MRT_TableFooter } from '../footer/MRT_TableFooter'; import { MRT_TableHead } from '../head/MRT_TableHead'; @@ -73,11 +73,10 @@ export const MRT_Table = ({ > {!!Caption && {Caption}} {enableTableHead && } - {memoMode === 'table-body' || columnSizingInfo.isResizingColumn ? ( - - ) : ( - - )} + {enableTableFooter && } );