Added scrollarea on table
This commit is contained in:
parent
852459fdc2
commit
d06010abe6
|
|
@ -1,68 +1,70 @@
|
||||||
"use client";
|
"use client";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
import { Table, Center } from "@mantine/core"
|
import { Table, Center, ScrollArea } from "@mantine/core";
|
||||||
import { Table as ReactTable, flexRender } from "@tanstack/react-table";
|
import { Table as ReactTable, flexRender } from "@tanstack/react-table";
|
||||||
|
|
||||||
interface Props<TData> {
|
interface Props<TData> {
|
||||||
table: ReactTable<TData>
|
table: ReactTable<TData>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function DashboardTable<T>({table}: Props<T>) {
|
export default function DashboardTable<T>({ table }: Props<T>) {
|
||||||
return (
|
return (
|
||||||
<Table verticalSpacing="xs" horizontalSpacing="xs">
|
<ScrollArea.Autosize>
|
||||||
{/* Thead */}
|
<Table verticalSpacing="xs" horizontalSpacing="xs">
|
||||||
<Table.Thead>
|
{/* Thead */}
|
||||||
{table.getHeaderGroups().map((headerGroup) => (
|
<Table.Thead>
|
||||||
<Table.Tr key={headerGroup.id}>
|
{table.getHeaderGroups().map((headerGroup) => (
|
||||||
{headerGroup.headers.map((header) => (
|
<Table.Tr key={headerGroup.id}>
|
||||||
<Table.Th
|
{headerGroup.headers.map((header) => (
|
||||||
key={header.id}
|
<Table.Th
|
||||||
style={{
|
key={header.id}
|
||||||
maxWidth: `${header.column.columnDef.maxSize}px`,
|
|
||||||
width: `${header.getSize()}`,
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{header.isPlaceholder
|
|
||||||
? null
|
|
||||||
: flexRender(
|
|
||||||
header.column.columnDef.header,
|
|
||||||
header.getContext()
|
|
||||||
)}
|
|
||||||
</Table.Th>
|
|
||||||
))}
|
|
||||||
</Table.Tr>
|
|
||||||
))}
|
|
||||||
</Table.Thead>
|
|
||||||
|
|
||||||
{/* Tbody */}
|
|
||||||
<Table.Tbody>
|
|
||||||
{table.getRowModel().rows.length > 0 ? (
|
|
||||||
table.getRowModel().rows.map((row) => (
|
|
||||||
<Table.Tr key={row.id}>
|
|
||||||
{row.getVisibleCells().map((cell) => (
|
|
||||||
<Table.Td
|
|
||||||
key={cell.id}
|
|
||||||
style={{
|
style={{
|
||||||
maxWidth: `${cell.column.columnDef.maxSize}px`,
|
maxWidth: `${header.column.columnDef.maxSize}px`,
|
||||||
|
width: `${header.getSize()}`,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{flexRender(
|
{header.isPlaceholder
|
||||||
cell.column.columnDef.cell,
|
? null
|
||||||
cell.getContext()
|
: flexRender(
|
||||||
)}
|
header.column.columnDef.header,
|
||||||
</Table.Td>
|
header.getContext()
|
||||||
|
)}
|
||||||
|
</Table.Th>
|
||||||
))}
|
))}
|
||||||
</Table.Tr>
|
</Table.Tr>
|
||||||
))
|
))}
|
||||||
) : (
|
</Table.Thead>
|
||||||
<Table.Tr>
|
|
||||||
<Table.Td colSpan={table.getAllColumns().length}>
|
{/* Tbody */}
|
||||||
<Center>- No Data -</Center>
|
<Table.Tbody>
|
||||||
</Table.Td>
|
{table.getRowModel().rows.length > 0 ? (
|
||||||
</Table.Tr>
|
table.getRowModel().rows.map((row) => (
|
||||||
)}
|
<Table.Tr key={row.id}>
|
||||||
</Table.Tbody>
|
{row.getVisibleCells().map((cell) => (
|
||||||
</Table>
|
<Table.Td
|
||||||
|
key={cell.id}
|
||||||
|
style={{
|
||||||
|
maxWidth: `${cell.column.columnDef.maxSize}px`,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{flexRender(
|
||||||
|
cell.column.columnDef.cell,
|
||||||
|
cell.getContext()
|
||||||
|
)}
|
||||||
|
</Table.Td>
|
||||||
|
))}
|
||||||
|
</Table.Tr>
|
||||||
|
))
|
||||||
|
) : (
|
||||||
|
<Table.Tr>
|
||||||
|
<Table.Td colSpan={table.getAllColumns().length}>
|
||||||
|
<Center>- No Data -</Center>
|
||||||
|
</Table.Td>
|
||||||
|
</Table.Tr>
|
||||||
|
)}
|
||||||
|
</Table.Tbody>
|
||||||
|
</Table>
|
||||||
|
</ScrollArea.Autosize>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user