nej-react-utils/Table/NejReactTable.tsx
honzapatCZ fa35bdb992 init
2024-10-17 23:17:27 +02:00

31 lines
884 B
TypeScript

import { MantineReactTable, MRT_RowData, MRT_TableInstance, MRT_TableOptions, useMantineReactTable, Xor } from "mantine-react-table";
import { useNejReactTable } from "./useNejReactTable";
type TableInstanceProp<TData extends MRT_RowData> = {
table: MRT_TableInstance<TData>;
};
type Props<TData extends MRT_RowData> = Xor<
TableInstanceProp<TData>,
MRT_TableOptions<TData>
>;
const isTableInstanceProp = <TData extends MRT_RowData>(
props: Props<TData>,
): props is TableInstanceProp<TData> =>
(props as TableInstanceProp<TData>).table !== undefined;
export const NejReactTable = <TData extends MRT_RowData>(
props: Props<TData>,
) => {
let table: MRT_TableInstance<TData>;
if (isTableInstanceProp(props)) {
table = props.table;
} else {
table = useNejReactTable(props);
}
return <MantineReactTable {...props} />;
};