antd-hz
Version:
华卓科技基于 antd 5.0 定制的组件库
54 lines (53 loc) • 1.94 kB
JavaScript
"use client";
import * as React from 'react';
import { EXPAND_COLUMN, Summary } from 'rc-table';
import Column from './Column';
import ColumnGroup from './ColumnGroup';
import { SELECTION_ALL, SELECTION_COLUMN, SELECTION_INVERT, SELECTION_NONE } from './hooks/useSelection';
import InternalTable from './InternalTable';
const Table = (props, ref) => {
const renderTimesRef = React.useRef(0);
renderTimesRef.current += 1;
let {
pagination
} = props;
const {
dataSource
} = props;
const PAGE_NUM = 5;
const PROPS_ADD_TO_PAGINATION = {
showSizeChanger: true,
showQuickJumper: true
};
if (pagination && typeof pagination === 'object') {
// 超过5页显示跳转
const {
pageSize = 10,
total = (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) || 0
} = pagination;
const pageIsOver = !!(pageSize && total && total / pageSize >= PAGE_NUM);
if (pageIsOver) {
pagination = Object.assign(Object.assign({}, PROPS_ADD_TO_PAGINATION), pagination);
}
} else if (pagination === undefined && ((dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) || 0) / 10 >= PAGE_NUM) {
pagination = Object.assign({}, PROPS_ADD_TO_PAGINATION);
}
return /*#__PURE__*/React.createElement(InternalTable, Object.assign({}, props, {
pagination: pagination,
ref: ref,
_renderTimes: renderTimesRef.current
}));
};
const ForwardTable = /*#__PURE__*/React.forwardRef(Table);
ForwardTable.SELECTION_COLUMN = SELECTION_COLUMN;
ForwardTable.EXPAND_COLUMN = EXPAND_COLUMN;
ForwardTable.SELECTION_ALL = SELECTION_ALL;
ForwardTable.SELECTION_INVERT = SELECTION_INVERT;
ForwardTable.SELECTION_NONE = SELECTION_NONE;
ForwardTable.Column = Column;
ForwardTable.ColumnGroup = ColumnGroup;
ForwardTable.Summary = Summary;
if (process.env.NODE_ENV !== 'production') {
ForwardTable.displayName = 'Table';
}
export default ForwardTable;