import React from 'react'; import TableCell, { TableCellProps } from './TableCell'; import Chevron from '../chevron'; import { Position } from '../common'; import { clsx } from 'clsx'; export interface TableRowType { cells?: TableCellProps[]; } export interface TableRowClickableType extends TableRowType { id: number | string; // `id` is mandatory for clickable rows } export interface TableRowProps { rowData?: TableRowType | TableRowClickableType; hasSeparator?: boolean; children?: React.ReactNode; onRowClick?: (rowData: TableRowType | TableRowClickableType) => void; } const TableRow = ({ rowData, hasSeparator = false, children, onRowClick }: TableRowProps) => { return ( <> onRowClick(rowData) : undefined} onKeyDown={({ key }) => { if (onRowClick && rowData && key === 'Enter') { onRowClick(rowData); } }} > {rowData?.cells ? rowData?.cells?.map((item, index) => { const itemIndex = item.cell?.text ? item.cell?.text.concat(index.toString()) : index; return ; }) : children} {onRowClick && ( )} {hasSeparator && (
)} ); }; export default TableRow;