All files / src/ahuora-design-system/ui paginated-table.tsx

100% Statements 2/2
100% Branches 2/2
100% Functions 1/1
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50                                                    68x   68x                                          
import { ScrollArea } from "@radix-ui/react-scroll-area";
import {
  DataTable,
  DataTableProps,
} from "@/ahuora-design-system/ui/data-table";
import Paginator from "@/ahuora-design-system/ui/paginator";
import { ScrollBar } from "@/ahuora-design-system/ui/scroll-area";
import { cn } from "@/lib/utils";
 
export interface PaginatedTableProps<TData, TValue>
  extends DataTableProps<TData, TValue> {
  data: any;
  columns: any[];
  page: number;
  setPage: (page: number) => void;
  className?: string;
  [key: string]: any;
}
 
export function PaginatedTable<TData, TValue>({
  data,
  page,
  setPage,
  className,
  ...props
}: PaginatedTableProps<TData, TValue>) {
  const fullTable = data?.results;
 
  return (
    <ScrollArea className="h-full">
      <div
        className={cn(
          "h-full w-full p-4 flex flex-col gap-4 relative",
          className,
        )}
      >
        <DataTable
          data={fullTable || []}
          rowSelection={{}}
          columnSelection
          {...props}
        />
        <Paginator page={page} setPage={setPage} data={data} />
        <ScrollBar orientation="vertical" />
        <ScrollBar orientation="horizontal" />
      </div>
    </ScrollArea>
  );
}