import { EditorProperty } from "@iplusplus/y-model" import { GridColDef } from "@mui/x-data-grid" /** * 一个函数, 接收一个参数,这个参数附带了单元格以及所在行的各种数据 * 通过这个参数返回一个可渲染的组件, 可以是ReactNode, string 或其他 */ export type CellRender = GridColDef["renderCell"] /** * CellRender的参数 */ export type CellRenderParam = Parameters>[0] /** * 通过EditorProperty来创建CellRender * 如果EditorProperty的类型满足要求, 则返回特定的EditCellRender, 否则返回undefined */ export type CellRenderBuilder = (property: EditorProperty) => CellRender | undefined /** * 通过EditorProperty来创建EditCellRender * 如果EditorProperty的类型满足要求, 则返回特定的EditCellRender, 否则返回undefined * 这个版本可以针对EditorProperty分别返回显示时和编辑时的EditCellRender */ export type CellRenderBuilder2 = (property: EditorProperty) => | { editorCellRender?: CellRender cellRender?: CellRender } | undefined export type EditorContextProps = { // editCellRenderBuilder:EditorPropertyCellRenderBuilder, editCellRenderBuilder: CellRenderBuilder cellRenderBuilder: CellRenderBuilder }