forked from Kuechlin/mantine-data-grid
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTableComponents.tsx
64 lines (57 loc) · 1.98 KB
/
TableComponents.tsx
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-unused-vars */
import { Cell, Header, HeaderGroup, Row, Table } from '@tanstack/react-table';
import { ComponentType, CSSProperties, PropsWithChildren } from 'react';
export type DataGridHeaderWrapperProps<TData> = PropsWithChildren<{
table: Table<TData>;
className: string;
role: 'rowgroup';
}>;
export type DataGridHeaderRowProps<TData> = PropsWithChildren<{
table: Table<TData>;
headerGroup: HeaderGroup<TData>;
className: string;
role: 'row';
}>;
export type DataGridHeaderCellProps<TData> = PropsWithChildren<{
table: Table<TData>;
header: Header<TData, unknown>;
className: string;
style: CSSProperties;
colSpan: number;
role: 'columnheader';
}>;
export type DataGridBodyWrapperProps<TData> = PropsWithChildren<{
table: Table<TData>;
className: string;
role: 'rowgroup';
}>;
export type DataGridBodyRowProps<TData> = PropsWithChildren<{
table: Table<TData>;
row: Row<TData>;
className: string;
role: 'row';
}>;
export type DataGridBodyCellProps<TData> = PropsWithChildren<{
table: Table<TData>;
cell: Cell<TData, unknown>;
className: string;
style: CSSProperties;
role: 'cell';
}>;
export const DefaultHeaderWrapper: ComponentType<DataGridHeaderWrapperProps<any>> = ({ table, ...rest }) => (
<thead {...rest} />
);
export const DefaultHeaderRow: ComponentType<DataGridHeaderRowProps<any>> = ({ table, headerGroup, ...rest }) => (
<tr {...rest} />
);
export const DefaultHeaderCell: ComponentType<DataGridHeaderCellProps<any>> = ({ table, header, ...rest }) => (
<th {...rest} />
);
export const DefaultBodyWrapper: ComponentType<DataGridBodyWrapperProps<any>> = ({ table, ...rest }) => (
<tbody {...rest} />
);
export const DefaultBodyRow: ComponentType<DataGridBodyRowProps<any>> = ({ table, row, ...rest }) => <tr {...rest} />;
export const DefaultBodyCell: ComponentType<DataGridBodyCellProps<any>> = ({ table, cell, ...rest }) => (
<td {...rest} />
);