gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/components/entity-table/hooks/use-entity-table.ts · v0.3.0-alpha7
Source
1 6b38fe9 Mrdn 2y ago import {
2 6b38fe9 Mrdn 2y ago ColumnDef,
3 6b38fe9 Mrdn 2y ago OnChangeFn,
4 6b38fe9 Mrdn 2y ago PaginationState,
5 6b38fe9 Mrdn 2y ago getCoreRowModel,
6 6b38fe9 Mrdn 2y ago getPaginationRowModel,
7 6b38fe9 Mrdn 2y ago getSortedRowModel,
8 6b38fe9 Mrdn 2y ago useReactTable
9 6b38fe9 Mrdn 2y ago } from "@tanstack/react-table";
10 6b38fe9 Mrdn 2y ago import {
11 6b38fe9 Mrdn 2y ago UseRowSelectionReturn,
12 6b38fe9 Mrdn 2y ago UseSortingReturn,
13 cfe497c Mrdn 2y ago UseVisibilityReturn,
14 6b38fe9 Mrdn 2y ago } from ".";
15 d21d2e2 Mrdn 2y ago
16 d21d2e2 Mrdn 2y ago interface UseEntityTableProps<TData, TValue> {
17 d21d2e2 Mrdn 2y ago columns: ColumnDef<TData, TValue>[]
18 d21d2e2 Mrdn 2y ago data: {
19 d21d2e2 Mrdn 2y ago entity: TData[]
20 d21d2e2 Mrdn 2y ago pageCount: number
21 d21d2e2 Mrdn 2y ago }
22 d21d2e2 Mrdn 2y ago sorting: UseSortingReturn
23 d21d2e2 Mrdn 2y ago visibility: UseVisibilityReturn
24 d21d2e2 Mrdn 2y ago rowSelection?: UseRowSelectionReturn
25 cfe497c Mrdn 2y ago manualSorting?: boolean
26 d21d2e2 Mrdn 2y ago pageIndex: number
27 d21d2e2 Mrdn 2y ago pageSize: number
28 d21d2e2 Mrdn 2y ago onPaginationChange: OnChangeFn<PaginationState>
29 d21d2e2 Mrdn 2y ago }
30 d21d2e2 Mrdn 2y ago
31 d21d2e2 Mrdn 2y ago export const useEntityTable = <TData, TValue>(
32 d21d2e2 Mrdn 2y ago {
33 d21d2e2 Mrdn 2y ago columns,
34 d21d2e2 Mrdn 2y ago data,
35 d21d2e2 Mrdn 2y ago sorting,
36 cfe497c Mrdn 2y ago manualSorting = false,
37 d21d2e2 Mrdn 2y ago visibility,
38 d21d2e2 Mrdn 2y ago rowSelection,
39 d21d2e2 Mrdn 2y ago pageIndex,
40 d21d2e2 Mrdn 2y ago pageSize,
41 d21d2e2 Mrdn 2y ago onPaginationChange
42 d21d2e2 Mrdn 2y ago }: UseEntityTableProps<TData, TValue>
43 d21d2e2 Mrdn 2y ago ) => useReactTable({
44 d21d2e2 Mrdn 2y ago data: data.entity,
45 d21d2e2 Mrdn 2y ago columns,
46 d21d2e2 Mrdn 2y ago manualPagination: true,
47 cfe497c Mrdn 2y ago manualSorting,
48 d21d2e2 Mrdn 2y ago pageCount: data.pageCount + 1,
49 d21d2e2 Mrdn 2y ago autoResetPageIndex: false,
50 d21d2e2 Mrdn 2y ago onPaginationChange,
51 d21d2e2 Mrdn 2y ago onSortingChange: sorting.setSorting,
52 d21d2e2 Mrdn 2y ago getCoreRowModel: getCoreRowModel(),
53 d21d2e2 Mrdn 2y ago getPaginationRowModel: getPaginationRowModel(),
54 d21d2e2 Mrdn 2y ago getSortedRowModel: getSortedRowModel(),
55 d21d2e2 Mrdn 2y ago onColumnVisibilityChange: visibility.setColumnVisibility,
56 d21d2e2 Mrdn 2y ago onRowSelectionChange: rowSelection && rowSelection.setSelectedRow,
57 d21d2e2 Mrdn 2y ago state: {
58 d21d2e2 Mrdn 2y ago sorting: sorting.sorting,
59 d21d2e2 Mrdn 2y ago columnVisibility: visibility.columnVisibility,
60 d21d2e2 Mrdn 2y ago pagination: { pageIndex: pageIndex - 1, pageSize },
61 d21d2e2 Mrdn 2y ago rowSelection: rowSelection ? rowSelection.selectedRow : {},
62 d21d2e2 Mrdn 2y ago },
63 d21d2e2 Mrdn 2y ago })