2024-11-11 14:56:33 +01:00
|
|
|
import {Table, TableBody, TableCell, TableHead, TableHeader, TableRow} from "@/components/ui/table";
|
2024-12-13 12:28:08 +01:00
|
|
|
import {flexRender, Row, RowData} from "@tanstack/react-table";
|
|
|
|
|
import {cn} from "@/lib/utils";
|
2024-11-11 14:56:33 +01:00
|
|
|
|
|
|
|
|
export type dataTableProps = {
|
2024-12-10 11:22:36 +01:00
|
|
|
table: any,
|
2024-11-11 14:56:33 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const DataTable = ({table}: dataTableProps) => {
|
2024-12-01 20:56:19 +01:00
|
|
|
|
2024-11-11 14:56:33 +01:00
|
|
|
return (
|
2024-11-23 18:54:47 +01:00
|
|
|
<div className="rounded-md border w-full ">
|
|
|
|
|
<Table className="w-full">
|
|
|
|
|
<TableHeader>
|
|
|
|
|
{table.getHeaderGroups().map((headerGroup) => (
|
|
|
|
|
<TableRow key={headerGroup.id}>
|
|
|
|
|
{headerGroup.headers.map((header) => {
|
|
|
|
|
return (
|
|
|
|
|
<TableHead key={header.id}>
|
|
|
|
|
{header.isPlaceholder
|
|
|
|
|
? null
|
|
|
|
|
: flexRender(
|
|
|
|
|
header.column.columnDef.header,
|
|
|
|
|
header.getContext()
|
|
|
|
|
)}
|
|
|
|
|
</TableHead>
|
|
|
|
|
)
|
|
|
|
|
})}
|
2024-11-11 14:56:33 +01:00
|
|
|
</TableRow>
|
2024-11-23 18:54:47 +01:00
|
|
|
))}
|
|
|
|
|
</TableHeader>
|
|
|
|
|
<TableBody>
|
|
|
|
|
{table.getRowModel().rows?.length ? (
|
2024-12-13 12:28:08 +01:00
|
|
|
table.getRowModel().rows.map((row: Row<RowData>) => {
|
|
|
|
|
console.log("row.original",row.original.id)
|
|
|
|
|
return(
|
|
|
|
|
<TableRow
|
|
|
|
|
className={cn(row.original ?? "bg-gray-200 pointer-events-none")}
|
|
|
|
|
key={row.id}
|
|
|
|
|
data-state={row.getIsSelected() && "selected"}
|
|
|
|
|
>
|
|
|
|
|
{row.getVisibleCells().map((cell) => (
|
|
|
|
|
<TableCell key={cell.id}>
|
|
|
|
|
{flexRender(
|
|
|
|
|
cell.column.columnDef.cell,
|
|
|
|
|
cell.getContext(),
|
|
|
|
|
)}
|
|
|
|
|
</TableCell>
|
|
|
|
|
))}
|
|
|
|
|
</TableRow>
|
|
|
|
|
)
|
|
|
|
|
})
|
2024-11-23 18:54:47 +01:00
|
|
|
) : (
|
|
|
|
|
<TableRow>
|
|
|
|
|
<TableCell colSpan={table.getAllColumns().length} className="h-24 text-center">
|
|
|
|
|
No results.
|
|
|
|
|
</TableCell>
|
|
|
|
|
</TableRow>
|
|
|
|
|
)}
|
|
|
|
|
</TableBody>
|
|
|
|
|
</Table>
|
|
|
|
|
</div>
|
2024-11-11 14:56:33 +01:00
|
|
|
)
|
2024-12-01 20:56:19 +01:00
|
|
|
}
|