'use client' import { ColumnDef, flexRender, getSortedRowModel, getCoreRowModel, ColumnFiltersState, useReactTable, getFilteredRowModel, getPaginationRowModel, SortingState, Table as TableType, } from '@tanstack/react-table' import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table' import React from 'react' import { Input } from '@/components/ui/input' import { DataTablePagination } from './data_table_pagination' import { useTranslation } from 'react-i18next' interface DataTableProps { columns: ColumnDef[] data?: TData[] filterColumnName?: string table: TableType } export function DataTable({ columns, filterColumnName, table }: DataTableProps) { const { t } = useTranslation() return (
{filterColumnName && (
table.getColumn(filterColumnName)?.setFilterValue(event.target.value)} className="max-w-sm" />
)}
{table.getHeaderGroups().map((headerGroup) => ( {headerGroup.headers.map((header) => { return ( {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} ) })} ))} {table.getRowModel().rows?.length ? ( table.getRowModel().rows.map((row) => ( {row.getVisibleCells().map((cell) => ( {flexRender(cell.column.columnDef.cell, cell.getContext())} ))} )) ) : ( {t('table.noData')} )}
) }