1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import React from 'react';
- import PropTypes from 'prop-types';
- import NormalTable from './Table';
- import ResizableTable from './ResizableTable';
- import Column from './Column';
- import { strings } from '@douyinfe/semi-foundation/table/constants';
- import { TableProps, Data } from './interface';
- class Table<RecordType extends Record<string, any> = Data> extends React.PureComponent<TableProps<RecordType>> {
- static Column = Column;
- static DEFAULT_KEY_COLUMN_SELECTION = strings.DEFAULT_KEY_COLUMN_SELECTION;
- static DEFAULT_KEY_COLUMN_EXPAND = strings.DEFAULT_KEY_COLUMN_EXPAND;
- static propTypes = {
- ...NormalTable.propTypes,
- resizable: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
- };
- static defaultProps = {
- hideExpandedColumn: true,
- };
- tableRef: React.RefObject<NormalTable<RecordType>>;
- constructor(props: TableProps) {
- super(props);
- this.tableRef = React.createRef();
- }
- getCurrentPageData = () => this.tableRef.current && this.tableRef.current.getCurrentPageData();
- render() {
- // eslint-disable-next-line prefer-destructuring
- const props = this.props;
- if (props.resizable) {
- return <ResizableTable {...props} ref={this.tableRef} />;
- } else {
- return <NormalTable<RecordType> {...props} ref={this.tableRef} />;
- }
- }
- }
- export * from './interface';
- export default Table;
|