import { flexRender, getCoreRowModel, useReactTable, type ColumnDef, } from "@tanstack/react-table"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { useEffect } from "react"; interface VersionTableProps { data: TData[]; columns: ColumnDef[]; isLoading: boolean; onTableInit?: (table: any) => void; // <-- thêm } export function VersionTable({ data, columns, isLoading, onTableInit, }: VersionTableProps) { const table = useReactTable({ data, columns, getCoreRowModel: getCoreRowModel(), getRowId: (row: any) => row.id?.toString(), enableRowSelection: true, }); useEffect(() => { onTableInit?.(table); }, [table, onTableInit]); return ( {table.getHeaderGroups().map((headerGroup) => ( {headerGroup.headers.map((header) => ( {header.isPlaceholder ? null : flexRender( header.column.columnDef.header, header.getContext() )} ))} ))} {isLoading ? ( Đang tải dữ liệu... ) : table.getRowModel().rows.length === 0 ? ( Không có dữ liệu. ) : ( table.getRowModel().rows.map((row) => ( {row.getVisibleCells().map((cell) => ( {flexRender(cell.column.columnDef.cell, cell.getContext())} ))} )) )}
); }