import React from 'react'; import type { TableColumn, TableVariant } from './types'; import { classNames } from '../../utils'; import { useTableCellContext } from './TableProvider'; import styles from './Table.module.css'; import tableStyles from '../../theme/table.module.css'; type Props = { column: TableColumn; columnIndex: number; row: T; hoveredRow: T | null; isCheckboxDisabled?: boolean; }; /* v8 ignore start */ const getCellVariantClassName = ( variant: TableVariant | undefined, ): string | undefined => { switch (variant) { case 'info': return styles.infoTableBodyCell; case 'primary': return styles.primaryTableBodyCell; case 'success': return styles.successTableBodyCell; case 'warning': return styles.warningTableBodyCell; case 'alert': return styles.alertTableBodyCell; } return undefined; }; /* v8 ignore stop */ export function TableCell({ column, columnIndex, row, hoveredRow, isCheckboxDisabled, }: Props) { const cellVariant = column.getCellVariant ? column.getCellVariant(row) : undefined; const { isRowDisabled, rowHeight, getRowId } = useTableCellContext(row); return ( {column.renderCell(row, { isRowHovered: hoveredRow === row, isCheckboxDisabled, })} ); }