UNPKG

meck-rc-table

Version:
66 lines (59 loc) 1.79 kB
import React from 'react'; import PropTypes from 'prop-types'; import { measureScrollbar } from './utils'; import BaseTable from './BaseTable'; export default function HeadTable(props, _ref) { var table = _ref.table; var _table$props = table.props, prefixCls = _table$props.prefixCls, scroll = _table$props.scroll, showHeader = _table$props.showHeader; var columns = props.columns, fixed = props.fixed, tableClassName = props.tableClassName, handleBodyScrollLeft = props.handleBodyScrollLeft, expander = props.expander; var saveRef = table.saveRef; var useFixedHeader = table.props.useFixedHeader; var headStyle = {}; if (scroll.y) { useFixedHeader = true; // Add negative margin bottom for scroll bar overflow bug var scrollbarWidth = measureScrollbar(); if (scrollbarWidth > 0 && !fixed) { headStyle.marginBottom = '-' + scrollbarWidth + 'px'; headStyle.paddingBottom = '0px'; } } if (!useFixedHeader || !showHeader) { return null; } return React.createElement( 'div', { key: 'headTable', ref: fixed ? null : saveRef('headTable'), className: prefixCls + '-header', style: headStyle, onScroll: handleBodyScrollLeft }, React.createElement(BaseTable, { tableClassName: tableClassName, hasHead: true, hasBody: false, fixed: fixed, columns: columns, expander: expander }) ); } HeadTable.propTypes = { fixed: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), columns: PropTypes.array.isRequired, tableClassName: PropTypes.string.isRequired, handleBodyScrollLeft: PropTypes.func.isRequired, expander: PropTypes.object.isRequired }; HeadTable.contextTypes = { table: PropTypes.any };