@mrii/react-table-builder
Version:
library to easily build tables using MUI grid
23 lines (22 loc) • 1.03 kB
TypeScript
import type { ActionsColumnExtraProps, BooleanColumnExtraProps, CustomColumnExtraProps, DateColumnExtraProps, DateTimeColumnExtraProps, ImageColumnExtraProps, NumberColumnExtraProps, SelectColumnExtraProps, TextColumnExtraProps } from "../components";
import type { GridActionsColDef, GridColDef } from '@mui/x-data-grid';
import type { ColumnTypeUnion } from './column-type-union';
export type ColumnTypeToColumnExtraProps = {
string: TextColumnExtraProps;
number: NumberColumnExtraProps;
boolean: BooleanColumnExtraProps;
date: DateColumnExtraProps;
dateTime: DateTimeColumnExtraProps;
singleSelect: SelectColumnExtraProps;
actions: ActionsColumnExtraProps;
image: ImageColumnExtraProps;
custom: CustomColumnExtraProps;
};
export type ColumnMetaData<T extends ColumnTypeUnion = ColumnTypeUnion> = Omit<GridColDef, 'type' | 'valueOptions'> & {
extraProps?: ColumnTypeToColumnExtraProps[T];
} & ({
type: T;
} | {
type: 'actions';
getActions: GridActionsColDef['getActions'];
});