import { Fragment } from "react"; import { ColumnDef, flexRender, getCoreRowModel, getExpandedRowModel, Row, useReactTable, } from "@tanstack/react-table"; import { Table, TableHead, TableHeaderCell, TableBody, TableRow, TableCell, } from "@tremor/react"; interface DataTableProps { data: TData[]; columns: ColumnDef[]; renderSubComponent: (props: { row: Row }) => React.ReactElement; getRowCanExpand: (row: Row) => boolean; isLoading?: boolean; } export function DataTable({ data = [], columns, getRowCanExpand, renderSubComponent, isLoading = false, }: DataTableProps) { const table = useReactTable({ data, columns, getRowCanExpand, getCoreRowModel: getCoreRowModel(), getExpandedRowModel: getExpandedRowModel(), }); return (
{table.getHeaderGroups().map((headerGroup) => ( {headerGroup.headers.map((header) => { return ( {header.isPlaceholder ? null : ( flexRender( header.column.columnDef.header, header.getContext() ) )} ); })} ))} {isLoading ?

🚅 Loading logs...

: table.getRowModel().rows.length > 0 ? table.getRowModel().rows.map((row) => ( {row.getVisibleCells().map((cell) => ( {flexRender( cell.column.columnDef.cell, cell.getContext() )} ))} {row.getIsExpanded() && ( {renderSubComponent({ row })} )} )) :

No logs found

}
); }