table-context.ts 1.2 KB

12345678910111213141516171819202122232425262728
  1. /* eslint-disable max-len */
  2. import React from 'react';
  3. import { noop } from 'lodash';
  4. import { ColumnProps, GetVirtualizedListRef } from './interface';
  5. export interface TableContextProps {
  6. children?: React.ReactNode;
  7. anyColumnFixed?: boolean;
  8. flattenedColumns?: ColumnProps[];
  9. tableWidth?: number[];
  10. headWidths?: number[];
  11. setHeadWidths?: (headWidth?: number[], index?: number) => void;
  12. getHeadWidths?: (index?: number) => number[];
  13. getCellWidths?: (flattenColumns: ColumnProps[], flattenedWidths?: number[], ignoreScrollBarKey?: boolean) => number[];
  14. handleRowExpanded?: (expanded: boolean, realKey: string, domEvent: React.MouseEvent<HTMLElement>) => void;
  15. renderExpandIcon?: (record: Record<string, any>, isNested?: boolean, groupKey?: string | number) => React.ReactNode;
  16. renderSelection?: (record: Record<string, any>, isHeader?: boolean) => React.ReactNode;
  17. getVirtualizedListRef?: GetVirtualizedListRef;
  18. setBodyHasScrollbar?: (bodyHasScrollBar: boolean) => void;
  19. }
  20. const TableContext = React.createContext<TableContextProps>({
  21. headWidths: [],
  22. setHeadWidths: noop,
  23. handleRowExpanded: noop,
  24. });
  25. export default TableContext;