Files
portabase/src/components/wrappers/table/data-table.tsx
T

65 lines
2.8 KiB
TypeScript
Raw Normal View History

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 = {
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 (
<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>
))}
</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>
)
})
) : (
<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
}