import clsx from 'clsx'; import classes from './MRT_TableHeadRow.module.css'; import { Box, TableTr, type TableTrProps } from '@mantine/core'; import { MRT_TableHeadCell } from './MRT_TableHeadCell'; import { type MRT_ColumnVirtualizer, type MRT_Header, type MRT_HeaderGroup, type MRT_RowData, type MRT_TableInstance, type MRT_VirtualItem, } from '../../types'; import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props extends TableTrProps { columnVirtualizer?: MRT_ColumnVirtualizer; headerGroup: MRT_HeaderGroup; table: MRT_TableInstance; } export const MRT_TableHeadRow = ({ columnVirtualizer, headerGroup, table, ...rest }: Props) => { 'use no memo'; const { getState, options: { enableStickyHeader, layoutMode, mantineTableHeadRowProps }, } = table; const { isFullScreen } = getState(); const { virtualColumns, virtualPaddingLeft, virtualPaddingRight } = columnVirtualizer ?? {}; const tableRowProps = { ...parseFromValuesOrFunc(mantineTableHeadRowProps, { headerGroup, table, }), ...rest, }; return ( {virtualPaddingLeft ? ( ) : null} {(virtualColumns ?? headerGroup.headers).map( (headerOrVirtualHeader, renderedHeaderIndex) => { let header = headerOrVirtualHeader as MRT_Header; if (columnVirtualizer) { renderedHeaderIndex = (headerOrVirtualHeader as MRT_VirtualItem) .index; header = headerGroup.headers[renderedHeaderIndex]; } return ( ); }, )} {virtualPaddingRight ? ( ) : null} ); };