import { flexRender, Row as TanstackRow, Table as TanstackTable } from '@tanstack/react-table' import classNames from 'classnames' interface Props { row: TanstackRow table: TanstackTable renderExpanded?: (row: TanstackRow, table: TanstackTable) => JSX.Element rowClassName?: string rowClickHandler?: () => void spacingClassName?: string isBalancesTable?: boolean } function getBorderColor(row: AccountBalanceRow) { return row.type === 'borrowing' ? 'border-loss' : 'border-profit' } export default function Row(props: Props) { const canExpand = !!props.renderExpanded return ( <> { e.preventDefault() const isExpanded = props.row.getIsExpanded() props.table.resetExpanded() !isExpanded && props.row.toggleExpanded() }} > {props.row.getVisibleCells().map((cell) => { const isSymbolOrName = cell.column.id === 'symbol' || cell.column.id === 'name' const borderClasses = props.isBalancesTable && isSymbolOrName ? classNames('border-l', getBorderColor(cell.row.original as AccountBalanceRow)) : '' return ( {flexRender(cell.column.columnDef.cell, cell.getContext())} ) })} {props.row.getIsExpanded() && props.renderExpanded && props.renderExpanded(props.row, props.table)} ) }