import React from 'react' import withDefaults from '../utils/with-defaults' import useTheme from '../use-theme' import TableCell from './table-cell' import { useTableContext } from './table-context' interface Props { hover: boolean emptyText: string onRow: (row: any, index: number) => void onCell: (cell: any, index: number, colunm: number) => void data: Array selected?: number } const defaultProps = { className: '' } type NativeAttrs = Omit, keyof Props> export type TableBodyProps = Props & typeof defaultProps & NativeAttrs export type cellActions = { remove: () => void } export type cellData = { row: number column: number value: any } const TableBody: React.FC = ({ data, hover, emptyText, selected, onRow, onCell }) => { const theme = useTheme() const { columns } = useTableContext() const rowClickHandler = (row: any, index: number) => { onRow(row, index) } return ( {data.map((row, index) => { return ( rowClickHandler(row, index)} > ) })} ) } const MemoTableBody = React.memo(TableBody) export default withDefaults(MemoTableBody, defaultProps)