import {
PrismaCmsComponentProps,
// PrismaCmsComponentPropsData,
PrismaCmsComponentState,
} from '@prisma-cms/component'
import { Padding } from 'material-ui/Table'
import TBody from './Body'
import EnhancedTableHead from './Header'
import { EnhancedTableToolbar } from './Toolbar'
// export type Column
= Record> = {
export type Column = {
/**
* Любое из полей полученного из запроса объекта
*/
id: keyof P
key?: string
/**
* Заголовок колонки
*/
label?: string
description?: string
className?: string
renderer?(value: any, record: P): any
hidden?: boolean
numeric?: boolean
padding?: Padding
disablePadding?: boolean
}
// export type ColumnConfig
> = Column
// export interface TableViewQueryFragment extends Record {
// id: string | null
// }
/**
* Нельзя расширять интерфейс, так как тогда будет требовать на вход расширенный
* от него же
*/
// export type ColumnConfig = Column
export type ColumnConfig
= Column
interface Variables extends Record {
first?: number | null
}
// export interface TableViewPropsData extends PrismaCmsComponentPropsData {
// export interface TableViewPropsData {
// objectsConnection?: {
// edges: Array<{ node: Record } | null>
// aggregate: {
// count: number
// }
// }
// objects?: Record[]
// }
export interface TableViewProps extends PrismaCmsComponentProps {
columnData?: ColumnConfig[]
// data: TableViewPropsData | null | undefined
objects: Record[]
// data: {
// objectsConnection?: {
// edges: Array<{node: Record} | null>
// aggregate: {
// count: number
// }
// }
// objects?: Record[]
// object?: PrismaCmsComponentPropsDataObject | null
// };
loading: boolean
// page: number
// withPagination?: boolean
// data:
// | {
// objectsConnection: any
// }
// | null
// | undefined
variables?: Variables
classes?: Record
className?: string
title?: string
Header?: typeof EnhancedTableHead
// Header: React.FC;
Toolbar?: EnhancedTableToolbar
Body?: typeof TBody
addObject?: () => void
}
export interface TableViewState extends PrismaCmsComponentState {
columnData: TableViewProps['columnData']
}
// export class TableView<
// P extends TableViewProps = TableViewProps,
// S extends TableViewState = TableViewState
// > extends PrismaCmsComponent {
// static defaultProps = {
// columnData: [],
// }
// mutate(arg0: any): void
// }
// export const styles: any = {}