choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
52 lines (42 loc) • 1.57 kB
JavaScript
import React, { useContext, useMemo } from 'react';
import { observer } from 'mobx-react-lite';
import { get } from 'mobx';
import isEqual from 'lodash/isEqual';
import { pxToRem } from '../../../es/_util/UnitConvertor';
import TableContext from './TableContext';
import { columnWidth, minColumnWidth } from './Column';
var TableCol = function TableCol(props) {
var column = props.column,
last = props.last;
var _useContext = useContext(TableContext),
tableStore = _useContext.tableStore,
prefixCls = _useContext.prefixCls;
var lastEmptyWidthColumn = tableStore.getLastEmptyWidthColumn;
var width = last && !tableStore.hasEmptyWidthColumn ? undefined : tableStore.overflowX ? columnWidth(column, tableStore) : get(column, 'width');
var innerClassName = [];
if (tableStore.isBuiltInColumn(column)) {
innerClassName.push(get(column, 'headerClassName'));
}
if (tableStore.tableColumnResizeTransition) {
innerClassName.push("".concat(prefixCls, "-col"));
}
var minWidth = minColumnWidth(column, tableStore);
if (lastEmptyWidthColumn && isEqual(column, lastEmptyWidthColumn)) {
width = undefined;
} else {
width = pxToRem(width, true);
}
var style = useMemo(function () {
return {
width: width,
minWidth: pxToRem(minWidth, true)
};
}, [width, minWidth]);
return /*#__PURE__*/React.createElement("col", {
className: innerClassName.join(' '),
style: style
});
};
TableCol.displayName = 'TableCol';
export default observer(TableCol);
//# sourceMappingURL=TableCol.js.map