UNPKG

@douyinfe/semi-ui

Version:

A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.

38 lines (34 loc) 1.65 kB
import React from 'react'; import { noop } from 'lodash'; import { ColumnProps, GetVirtualizedListRef, RowKey } from './interface'; import { BaseRowKeyType, BaseHeadWidth, } from '@douyinfe/semi-foundation/table/foundation'; import type { ContextValue } from '../configProvider/context'; export interface TableContextProps { children?: React.ReactNode; anyColumnFixed?: boolean; flattenedColumns?: ColumnProps[]; tableWidth?: number; headWidths?: BaseHeadWidth[][]; setHeadWidths?: (headWidth?: BaseHeadWidth[], index?: number) => void; getHeadWidths?: (index?: number) => number[]; getCellWidths?: (flattenColumns: ColumnProps[], flattenedWidths?: number[], ignoreScrollBarKey?: boolean) => number[]; handleRowExpanded?: (expanded: boolean, realKey: RowKey<any>, domEvent: React.MouseEvent<HTMLElement>) => void; renderExpandIcon?: (record: Record<string, any>, isNested?: boolean, groupKey?: string | number) => React.ReactNode; renderSelection?: (record?: Record<string, any>, isHeader?: boolean) => React.ReactNode; getVirtualizedListRef?: GetVirtualizedListRef; setBodyHasScrollbar?: (bodyHasScrollbar: boolean) => void; direction?: ContextValue['direction']; handleRowSelection?: (rowKey: BaseRowKeyType, selected: boolean, e: React.MouseEvent) => void; headerStyle?: React.CSSProperties; /** Whether to highlight all related rows when hovering over a rowspan cell */ rowSpanHover?: boolean } const TableContext = React.createContext<TableContextProps>({ headWidths: [], setHeadWidths: noop, handleRowExpanded: noop, }); export default TableContext;